Files
gestion/commands/moderation/delrole.js
T
VALOU3336 9bd39c69ca grand commit que tutur attend ( marche pas le raidmode en dev)
sinon il y a pleins de truc comme les anti raid , des coorectif ect
2024-04-22 18:30:33 +02:00

50 lines
2.3 KiB
JavaScript

const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
const { PermissionsBitField } = require('discord.js');
module.exports = {
name: 'delrole',
description: 'Supprime un rôle d\'un utilisateur.',
usage: '+delrole <@user ou ID> <@role ou ID ou nom>',
category: 'moderation',
async execute(message, args, client) {
const botMember = await message.guild.members.fetch(client.user.id);
const userMember = await message.guild.members.fetch(message.author.id);
if (!botMember.permissions.has(PermissionsBitField.Flags.ManageRoles)) {
return message.reply("Je n'ai pas la permission de pouvoir supprimer des rôles");
}
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if (!user) {
return message.reply('Utilisateur non trouvé.');
}
let role;
if (message.mentions.roles.first()) {
role = message.mentions.roles.first();
} else if (args[1].match(/^<@&(\d+)>$/)) {
const roleId = args[1].match(/^<@&(\d+)>$/)[1];
role = message.guild.roles.cache.get(roleId);
} else {
role = message.guild.roles.cache.find(r => r.name.toLowerCase() === args[1].toLowerCase());
}
if (!role) {
return message.reply('Rôle non trouvé.');
}
if (role.position >= (botMember.roles.highest ? botMember.roles.highest.position : 0)) {
return message.reply('Je ne peux pas gérer ce rôle car il est plus haut ou égal à mon rôle le plus élevé.');
}
const permlevel = await getPermissionLevel(user, client);
const roleposition = role.position;
const userroleposition = userMember.roles.highest.position;
if (roleposition >= userroleposition && permlevel < 10) return message.reply('Vous ne pouvez pas supprimer un rôle plus élevé ou égal au vôtre.');
try {
await user.roles.remove(role, `delrole : ${message.author.username}`);
message.reply(`Le rôle ${role} a été supprimé de ${user.user.tag}.`);
} catch (error) {
return message.reply('Une erreur est survenue lors de la suppression du rôle.');
}
},
};