const { SlashCommandBuilder, EmbedBuilder, MessageFlags } = require('discord.js'); const { generateLinkCode, getUserLink } = require('../../database.js'); module.exports = { data: new SlashCommandBuilder() .setName('rygainland-link') .setDescription('Lier votre compte Discord à votre compte Palworld'), async execute(interaction) { try { const existingLink = await getUserLink(interaction.user.id); if (existingLink) { return interaction.reply({ content: `Vous êtes déjà lié au compte Palworld: **${existingLink.palworld_username}** (Steam ID: ${existingLink.steam_id})`, flags: MessageFlags.Ephemeral }); } const code = await generateLinkCode(interaction.user.id); 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\`\`\`!link ${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(); await interaction.reply({ embeds: [embed], flags: MessageFlags.Ephemeral }); // Le système checkAndManageWebSocket va détecter le nouveau code automatiquement } catch (error) { console.error('Erreur lors de la génération du code:', error); await interaction.reply({ content: '❌ Une erreur est survenue lors de la génération du code.', flags: MessageFlags.Ephemeral }); } }, };