const { PermissionsBitField } = require('discord.js'); module.exports = { name: 'dperm', description: 'Supprime une permission spécifiée de tous les rôles qui l\'ont', async execute(message, args) { if (!args[0]) { return message.reply('Veuillez spécifier une permission à supprimer.'); } switch (args[0].toLowerCase()) { case 'ban': const permissionToRemove = PermissionsBitField.Flags.BanMembers; if (!permissionToRemove) { return message.reply('Permission invalide.'); } for (const role of message.guild.roles.cache.values()) { console.log(role.name + '; ' + permissionToRemove + ' ;' + role.permissions); if (role.permissions.has(permissionToRemove)) { console.log(`Attempting to remove ban permission from role: ${role.name}`); try { await role.permissions.remove(PermissionsBitField.Flags.BanMembers); console.log(`Successfully removed ban permission from role: ${role.name}`); } catch (error) { console.log(`Failed to remove ban permission from role: ${role.name}. Error: ${error}`); } } } message.reply(`La permission ${args[0]} a été supprimée de tous les rôles qui l'avaient.`); break; case 'webhook': let permissionToRemove1 = PermissionsBitField.Flags.ManageWebhooks if (!permissionToRemove1) { return message.reply('Permission invalide.'); } message.guild.roles.cache.forEach(role => { if (role.permissions.has(permissionToRemove1)) { role.permissions.remove(permissionToRemove1) .then(updatedRole => { console.log(`Permission ${args[0]} supprimée du rôle ${updatedRole.name}`); }) .catch(error => { console.error(`Erreur lors de la suppression de la permission ${args[0]} du rôle ${role.name}: ${error}`); }); } }); message.reply(`La permission ${args[0]} a été supprimée de tous les rôles qui l'avaient.`); break; case 'role': let permissionToRemove2 = PermissionsBitField.Flags.ManageRoles if (!permissionToRemove2) { return message.reply('Permission invalide.'); } message.guild.roles.cache.forEach(role => { if (role.permissions.has(permissionToRemove2)) { role.permissions.remove(permissionToRemove2) .then(updatedRole => { console.log(`Permission ${args[0]} supprimée du rôle ${updatedRole.name}`); }) .catch(error => { console.error(`Erreur lors de la suppression de la permission ${args[0]} du rôle ${role.name}: ${error}`); }); } }); message.reply(`La permission ${args[0]} a été supprimée de tous les rôles qui l'avaient.`); break; case 'servers' || 'serveur': let permissionToRemove3 = PermissionsBitField.Flags.ManageGuild if (!permissionToRemove3) { return message.reply('Permission invalide.'); } message.guild.roles.cache.forEach(role => { if (role.permissions.has(permissionToRemove3)) { role.permissions.remove(permissionToRemove3) .then(updatedRole => { console.log(`Permission ${args[0]} supprimée du rôle ${updatedRole.name}`); }) .catch(error => { console.error(`Erreur lors de la suppression de la permission ${args[0]} du rôle ${role.name}: ${error}`); }); } }); message.reply(`La permission ${args[0]} a été supprimée de tous les rôles qui l'avaient.`); break; default: return message.reply('Permission invalide.'); } }, };