const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); module.exports = { name: 'banlist', description: 'Liste tous les utilisateurs bannis avec leur raison de bannissement', emote: 'đŸš«', utilisation: 'banlist', category: 'moderation', async execute(message) { try { const bans = await message.guild.bans.fetch(); const bansArray = Array.from(bans.values()); const embeds = []; const maxPerPage = 15; let index = 0; for (let i = 0; i < bansArray.length; i += maxPerPage) { const page = bansArray.slice(i, i + maxPerPage).map((ban) => { const reason = ban.reason || 'Raison non disponible'; const entry = `**${index + 1}.** ${ban.user.tag} - **Raison: **\`${reason}\``; index++; return entry; }).join('\n'); const embed = new EmbedBuilder() .setTitle('Liste des utilisateurs bannis') .setDescription(page) .setColor('#ff0000'); embeds.push(embed); } let currentPage = 0; const row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId('previous') .setLabel('PrĂ©cĂ©dent') .setStyle(ButtonStyle.Primary), new ButtonBuilder() .setCustomId('next') .setLabel('Suivant') .setStyle(ButtonStyle.Primary) ); const sentMessage = await message.channel.send({ embeds: [embeds[currentPage]], components: [row] }); const filter = i => i.customId === 'previous' || i.customId === 'next' && i.user.id === message.author.id; const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 }); collector.on('collect', async i => { if (i.customId === 'previous') { currentPage--; } else if (i.customId === 'next') { currentPage++; } if (currentPage < 0) { currentPage = 0; } else if (currentPage >= embeds.length) { currentPage = embeds.length - 1; } const newEmbed = embeds[currentPage]; const backButton = new ButtonBuilder() .setCustomId('previous') .setLabel('PrĂ©cĂ©dent') .setStyle(ButtonStyle.Primary); const nextButton = new ButtonBuilder() .setCustomId('next') .setLabel('Suivant') .setStyle(ButtonStyle.Primary); const row = new ActionRowBuilder() .addComponents(backButton, nextButton); await i.update({ embeds: [newEmbed], components: [row] }); }); collector.on('end', collected => { sentMessage.edit({ components: [] }); }); } catch (error) { console.error('Erreur lors de la rĂ©cupĂ©ration des utilisateurs bannis:', error); message.reply('Une erreur est survenue lors de la rĂ©cupĂ©ration des utilisateurs bannis.'); } }, };