diff --git a/commands/moderation/kick.js b/commands/moderation/kick.js new file mode 100644 index 0000000..f18acf2 --- /dev/null +++ b/commands/moderation/kick.js @@ -0,0 +1,33 @@ +const { EmbedBuilder, User } = require("discord.js") +const permissionLevel = await getPermissionLevel(member, client); + +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 permissionLevel(member, client) >= await permissionLevel(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).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 diff --git a/commands/utils/poll.js b/commands/utils/poll.js index e314bad..437c7a7 100644 --- a/commands/utils/poll.js +++ b/commands/utils/poll.js @@ -4,7 +4,7 @@ module.exports = { name: 'poll', description: 'Crée un sondage', emote: '📊', - utilisation: 'poll ...', + utilisation: 'poll', category: 'utils', async execute(message, args, client) { const pollEmbed = new EmbedBuilder() diff --git a/loaders/loadCommands.js b/loaders/loadCommands.js index 76dadaf..aed4d89 100644 --- a/loaders/loadCommands.js +++ b/loaders/loadCommands.js @@ -2,6 +2,7 @@ const fs = require('fs'); const path = require('path'); const db = require('quick.db'); const GestionDb = new db.table('gestion') + module.exports = (client) => { const loadCommands = (dir) => { let count = 0; @@ -81,4 +82,6 @@ module.exports = (client) => { } } }); -} \ No newline at end of file +} + +module.exports = { getPermissionLevel }; \ No newline at end of file