const { SlashCommandBuilder, EmbedBuilder, MessageFlags } = require('discord.js'); const { getAllLinks } = require('../../database.js'); module.exports = { data: new SlashCommandBuilder() .setName('afficher-lies') .setDescription('Afficher tous les comptes liés'), async execute(interaction) { try { await interaction.deferReply({}); const links = await getAllLinks(); if (links.length === 0) { return interaction.editReply({ content: '📝 Aucun compte lié pour le moment.', flags: MessageFlags.Ephemeral }); } const embed = new EmbedBuilder() .setColor(0x0099FF) .setTitle('🔗 Liste des comptes liés') .setDescription(`Total: **${links.length}** compte(s) lié(s)`) .setTimestamp(); // Diviser en plusieurs embeds si nécessaire (limite de 25 fields) const chunks = []; for (let i = 0; i < links.length; i += 10) { chunks.push(links.slice(i, i + 10)); } for (const chunk of chunks) { for (const link of chunk) { const user = await interaction.client.users.fetch(link.discord_id).catch(() => null); const discordName = user ? (user.globalName ? user.globalName : user.username) : link.discord_username; const discordMention = `<@${link.discord_id}>`; const lastConn = link.lastConnection ? `📅 Dernière connexion: ` : '📅 Dernière connexion: Jamais vu'; embed.addFields({ name: `👤 ${discordName}`, value: `${discordMention} 🎮 Palworld: **${link.palworld_username}** 🆔 Steam ID: \`${link.steam_id}\` 🎯 Player ID: \`${link.player_id || 'N/A'}\` ${lastConn} 📅 Lié le: ${new Date(link.linked_at).toLocaleDateString('fr-FR')}`, inline: false }); } } await interaction.editReply({ embeds: [embed]}); } catch (error) { console.error('Erreur lors de la récupération des liaisons:', error); await interaction.editReply({ content: '❌ Une erreur est survenue lors de la récupération des liaisons.', flags: MessageFlags.Ephemeral }); } }, };