const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); const embedColor = require('../../fonctions/embedColor.js'); module.exports = { aliases: ['kick'], description: 'permet d\'expulser un membre', emote: '⏱️', utilisation: '<@membre> ', permission: 0, async execute(message, args, client) { const authorPerms = message.channel.permissionsFor(message.author) if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) && !client.config.owners.includes(message.author.id)) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle('Erreur') .setDescription('❌ Vous n\'avez pas les permissions pour expulser.') .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) ], allowedMentions: { repliedUser: false } }); } let member = message.mentions.members.first() //|| message.guild.members.get(args[0]); if (!member) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle('Erreur') .setDescription('❌ Veuillez spécifier un membre du serveur.') .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) ], allowedMentions: { repliedUser: false } }); } const motif = args[1] if (motif.length < 2) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle('Erreur') .setDescription('❌ Veuillez indiquer un motif.') .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) ], allowedMentions: { repliedUser: false } }); } let reponse member.kick({ reason: motif }) .then(async () => { const btn = new ButtonBuilder() .setCustomId('mp') .setLabel('Prevenir le membre en MP') .setStyle(ButtonStyle.Primary); const row = new ActionRowBuilder() .addComponents(btn); const embed = new EmbedBuilder() .setTitle('Membre expulser !') .setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`') .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); }) const filter = i => i.customId === 'mp' && i.user.id === message.author.id; const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) collector.on('collect', async (interaction) => { const embedkick = new EmbedBuilder() .setTitle('Expulsion !') .setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`') .setColor("Red") .setTimestamp() member.send({ embeds: [embedkick] }) interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } }); }); collector.on('end', () => { reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); }); } };