diff --git a/commands/moderation/kick.js b/commands/moderation/kick.js new file mode 100644 index 0000000..7bd9b3f --- /dev/null +++ b/commands/moderation/kick.js @@ -0,0 +1,41 @@ +const { EmbedBuilder, User } = require("discord.js") +const { getPermissionLevel } = require('../fonction'); + +module.exports = { + name: 'kick', + description: 'Kick a member', + emote: '🔍', + utilisation: 'kick <@member> [reason]', + category: 'utils', + + async execute(message, args, client) { + const member = message.mentions.members.first(); + const reason = args.slice(1).join(' ') || 'Aucune raison spécifiée'; + if (!member) { + return message.reply('Veuillez mentionner un membre à kick'); + } + if (member.id === message.author.id) { + return message.reply('Vous ne pouvez pas vous kick vous même'); + } + if (member.id === client.user.id) { + return message.reply('Vous ne pouvez pas me kick'); + } + if (await getPermissionLevel(member, client) === 11) { + return message.reply('Vous ne pouvez pas kick un membre buyer'); + } + if (await getPermissionLevel(member, client) === 10) { + return message.reply('Vous ne pouvez pas kick un membre owner'); + } + if (await getPermissionLevel(message.member, client) !== 11 || await getPermissionLevel(message.member, client) !== 10) { + if (await getPermissionLevel(member, client) >= await getPermissionLevel(message.member, client)) { + return message.reply('Vous ne pouvez pas kick un membre avec une permission égale ou supérieure à la votre'); + } + } + + member.kick(`${reason} : ${message.author.tag}`).then(() => { + message.reply(`${member.user.tag} a bien été kick`); + }).catch((err) => { + message.reply(`Une erreur est survenue lors du kick de ${member.user.tag}`); + }); + }, +}; \ No newline at end of file