couteau_suisse/commands/utility/lier-rygainland.js
2026-01-16 20:46:17 +01:00

59 lines
3.1 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const { SlashCommandBuilder, EmbedBuilder, MessageFlags } = require('discord.js');
const { generateLinkCode, getUserLink } = require('../../database.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('lier-rygainland')
.setDescription('Lier votre compte Discord à votre compte Palworld'),
async execute(interaction) {
try {
console.log('=== [LIER-RYGAINLAND] Début de l\'exécution ===');
console.log('[LIER-RYGAINLAND] Utilisateur:', interaction.user.tag, '(ID:', interaction.user.id + ')');
console.log('[LIER-RYGAINLAND] Vérification des liaisons existantes...');
const existingLink = await getUserLink(interaction.user.id);
console.log('[LIER-RYGAINLAND] Liaison existante:', existingLink);
if (existingLink) {
console.log('[LIER-RYGAINLAND] ⚠️ Utilisateur déjà lié à:', existingLink.palworld_username);
return interaction.reply({
content: `Vous êtes déjà lié au compte Palworld: **${existingLink.palworld_username}** (Steam ID: ${existingLink.steam_id})`,
flags: MessageFlags.Ephemeral
});
}
console.log('[LIER-RYGAINLAND] Génération d\'un nouveau code de liaison...');
const code = await generateLinkCode(interaction.user.id);
console.log('[LIER-RYGAINLAND] ✅ Code généré:', code);
const embed = new EmbedBuilder()
.setColor(0x00FF00)
.setTitle('🔗 Liaison de compte Rygainland')
.setDescription('Pour lier votre compte Discord à votre compte Palworld:')
.addFields(
{ name: '1⃣ Étape 1', value: 'Connectez-vous sur le serveur Palworld' },
{ name: '2⃣ Étape 2', value: `Tapez dans le chat du jeu:\n\`\`\`!lier ${code}\`\`\`` },
{ name: '⏱️ Expiration', value: 'Ce code expire dans **10 minutes**' },
{ name: '🔑 Votre code', value: `\`${code}\``, inline: false }
)
.setFooter({ text: 'Le système de surveillance démarre automatiquement' })
.setTimestamp();
console.log('[LIER-RYGAINLAND] Envoi de l\'embed avec le code...');
await interaction.reply({ embeds: [embed], flags: MessageFlags.Ephemeral });
console.log('[LIER-RYGAINLAND] ✅ Réponse envoyée avec succès');
console.log('[LIER-RYGAINLAND] Le système WebSocket va surveiller le code:', code);
// Le système checkAndManageWebSocket va détecter le nouveau code automatiquement
} catch (error) {
console.error('[LIER-RYGAINLAND] ❌ ERREUR CRITIQUE:', error);
console.error('[LIER-RYGAINLAND] Stack trace:', error.stack);
await interaction.reply({
content: '❌ Une erreur est survenue lors de la génération du code.',
flags: MessageFlags.Ephemeral
}).catch(err => console.error('[LIER-RYGAINLAND] Impossible de répondre:', err));
}
},
};