mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
9bd39c69ca
sinon il y a pleins de truc comme les anti raid , des coorectif ect
54 lines
2.4 KiB
JavaScript
54 lines
2.4 KiB
JavaScript
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
|
const { PermissionsBitField } = require('discord.js');
|
|
|
|
module.exports = {
|
|
name: 'addrole',
|
|
description: 'Ajoute un rôle à un utilisateur.',
|
|
usage: '+addrole @user/id <role>',
|
|
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'est pas la permission de pouvoir donnée des role");
|
|
}
|
|
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);
|
|
if (role.permissions.has(PermissionsBitField.Flags.Administrator)&& permlevel < 10) {
|
|
return message.reply('Le rôle que vous demandez est dangereux.');
|
|
}
|
|
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.add(role, `addrole : ${message.author.username}`);
|
|
message.reply(`Le rôle ${role} a été ajouté à ${user.user.tag}.`);
|
|
} catch (error) {
|
|
return message.reply('Une erreur est survenue lors de l\'ajout du rôle.');
|
|
}
|
|
},
|
|
}; |