mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 15:07:26 +02:00
9bd39c69ca
sinon il y a pleins de truc comme les anti raid , des coorectif ect
53 lines
2.3 KiB
JavaScript
53 lines
2.3 KiB
JavaScript
const { getPermissionLevel2 } = require('../../fonction/getPermissionLevel');
|
|
|
|
module.exports = {
|
|
name: 'kick',
|
|
description: 'Expluser un membre',
|
|
emote: '🚫',
|
|
utilisation: 'kick <@member> [reason]',
|
|
category: 'moderation',
|
|
|
|
async execute(message, args, client) {
|
|
const userId = message.mentions.users.first()?.id || args[0];
|
|
const guildId = message.guild.id;
|
|
const user = await message.guild.members.fetch(userId).catch(error => {
|
|
return null;
|
|
});
|
|
const author = await message.guild.members.fetch(message.author.id).catch(error => {
|
|
return null;
|
|
});
|
|
if (!user) {
|
|
return message.reply('Veuillez mentionner un utilisateur valide ou fournir un ID valide.');
|
|
}
|
|
|
|
if (user.id === message.author.id) {
|
|
return message.reply('Vous ne pouvez pas vous kick vous même');
|
|
}
|
|
if (user.id === client.user.id) {
|
|
return message.reply('Vous ne pouvez pas me kick');
|
|
}
|
|
const permissionMember = await getPermissionLevel2(user, client, guildId);
|
|
if (permissionMember === 11) {
|
|
return message.reply('Vous ne pouvez pas kick un membre buyer');
|
|
}
|
|
if (permissionMember === 10) {
|
|
return message.reply('Vous ne pouvez pas kick un membre owner');
|
|
}
|
|
const permissionAuthor = await getPermissionLevel2(message.author, client, guildId);
|
|
if (permissionAuthor !== 11 && permissionAuthor !== 10) {
|
|
if (permissionMember >= permissionAuthor) {
|
|
return message.reply('Vous ne pouvez pas kick un membre avec une permission égale ou supérieure à la votre');
|
|
}
|
|
}
|
|
if(user.roles.highest.position >= author.roles.highest.position && permissionAuthor !== 11 && permissionAuthor !== 10) {
|
|
return message.reply('Vous ne pouvez pas kick un membre avec un role égale ou supérieure à la votre');
|
|
}
|
|
try {
|
|
const reason = args.slice(1).join(' ') || `Aucune raison spécifiée : ${message.author.tag}`;
|
|
await user.kick(reason);
|
|
message.channel.send(`L'utilisateur ${user.user.username} a été kick.`);
|
|
} catch {
|
|
message.reply(`Une erreur s'est produite lors de la tentative de kick de ${user.user.username}.`);
|
|
}
|
|
},
|
|
}; |