const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require('discord.js'); const { getUserLink, deleteUserLink } = require('../../database.js'); module.exports = { data: new SlashCommandBuilder() .setName('delier') .setDescription('Délier un compte Discord de son compte Palworld (Admin)') .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addUserOption(option => option.setName('compte-discord') .setDescription('Le compte Discord à délier') .setRequired(true)), async execute(interaction) { try { await interaction.deferReply({ ephemeral: true }); const discordUser = interaction.options.getUser('compte-discord'); const existingLink = await getUserLink(discordUser.id); if (!existingLink) { return interaction.editReply({ content: `❌ Le compte <@${discordUser.id}> n'est pas lié à un compte Palworld.`, ephemeral: true }); } await deleteUserLink(discordUser.id); const embed = new EmbedBuilder() .setColor(0xFF0000) .setTitle('🔓 Liaison supprimée') .setDescription(`Le compte Discord a été délié avec succès.`) .addFields( { name: '👤 Discord', value: `${discordUser.tag} (<@${discordUser.id}>)`, inline: false }, { name: '🎮 Palworld (ancien)', value: existingLink.palworld_username, inline: true }, { name: '🆔 Steam ID (ancien)', value: `\`${existingLink.steam_id}\``, inline: true } ) .setTimestamp(); await discordUser.send( `🔓 **Liaison supprimée**\n\n` + `Votre compte Discord a été délié de votre compte Palworld par un administrateur.\n` + `Vous pouvez vous lier à nouveau avec \`/lier-rygainland\`.` ).catch(() => {}); await interaction.editReply({ embeds: [embed], ephemeral: true }); } catch (error) { console.error('Erreur lors de la suppression de la liaison:', error); await interaction.editReply({ content: '❌ Une erreur est survenue lors de la suppression de la liaison.', ephemeral: true }); } }, };