mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-19 21:39:21 +02:00
gestion permission add
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
module.exports = {
|
||||
name: 'change',
|
||||
description: 'Change le niveau de permission d\'une commande',
|
||||
async execute(message, args, client) {
|
||||
const botId = client.user.id;
|
||||
const unchangeableCommands = ['owner', 'unowner','buyer'];
|
||||
|
||||
if (args.length < 2) {
|
||||
return message.reply('Veuillez spécifier une commande et un niveau de permission.');
|
||||
}
|
||||
|
||||
const commandName = args[0].toLowerCase();
|
||||
let permissionLevel;
|
||||
|
||||
if (args[1] === 'owner') {
|
||||
permissionLevel = 10;
|
||||
}
|
||||
|
||||
else if (args[1] === 'buyer') {
|
||||
permissionLevel = 11;
|
||||
}
|
||||
else {
|
||||
permissionLevel = parseInt(args[1]);
|
||||
if (isNaN(permissionLevel) || permissionLevel < 0 || permissionLevel > 9) {
|
||||
return message.reply('Veuillez spécifier un niveau de permission valide (entre 0 et 9).');
|
||||
}
|
||||
}
|
||||
|
||||
if (unchangeableCommands.includes(commandName)) {
|
||||
return message.reply(`La commande ${commandName} ne peut pas être modifiée.`);
|
||||
}
|
||||
|
||||
if (!client.commands.has(commandName)) {
|
||||
return message.reply('Cette commande n\'existe pas.');
|
||||
}
|
||||
|
||||
let permissions = await GestionDb.get(`${botId}.permissions`);
|
||||
permissions[commandName] = permissionLevel;
|
||||
await GestionDb.set(`${botId}.permissions`, permissions);
|
||||
|
||||
message.reply(`Le niveau de permission de la commande ${commandName} a été changé à ${args[0].toLowerCase()}.`);
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,51 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
|
||||
module.exports = {
|
||||
name: 'delperm',
|
||||
description: 'Supprime un rôle d\'un niveau de permission ou d\'une commande',
|
||||
async execute(message, args, client) {
|
||||
const botId = client.user.id;
|
||||
// Récupère le niveau de permission/la commande et le rôle
|
||||
const permissionOrCommand = args[0].toLowerCase();
|
||||
const role = message.mentions.roles.first();
|
||||
|
||||
// Vérifie si le rôle est valide
|
||||
if (!role) {
|
||||
return message.reply('Veuillez mentionner un rôle valide.');
|
||||
}
|
||||
|
||||
// Vérifie si c'est un niveau de permission ou une commande
|
||||
if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(permissionOrCommand)) {
|
||||
// C'est un niveau de permission
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${permissionOrCommand}`);
|
||||
if (roleIds) {
|
||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
const index = roleIds.indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
roleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${permissionOrCommand}`, roleIds);
|
||||
}
|
||||
}
|
||||
message.reply(`Le rôle pour ${permissionOrCommand} a été supprimé.`);
|
||||
} else {
|
||||
// C'est une commande
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${permissionOrCommand}`);
|
||||
if (roleIds) {
|
||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
const index = roleIds.indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
roleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.c${permissionOrCommand}`, roleIds);
|
||||
}
|
||||
}
|
||||
message.reply(`L commande ${permissionOrCommand} a été supprimé du role.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,56 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
module.exports = {
|
||||
name: 'perm',
|
||||
description: 'Affiche les rôles pour chaque niveau de permission et commande',
|
||||
emote: '🛡️',
|
||||
utilisation: 'perm',
|
||||
category: 'botcontrol',
|
||||
async execute(message, client) {
|
||||
const botId = message.client.user.id;
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Rôles de permission et de commande')
|
||||
.setColor('#0099ff');
|
||||
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||
let roles = 'Aucun rôle défini';
|
||||
if (roleIds) {
|
||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
roles = roleIds.map(id => `<@&${id}>`).join(', ');
|
||||
}
|
||||
embed.addFields({ name: `Perm ${i}`, value: roles});
|
||||
}
|
||||
const commandNames = await GestionDb.get(`${botId}.${message.guild.id}.commandNames`);
|
||||
if (commandNames && commandNames.length > 0) {
|
||||
// Créez un objet pour regrouper les commandes par rôle
|
||||
const commandsByRole = {};
|
||||
|
||||
for (const commandName of commandNames) {
|
||||
const roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${commandName}`);
|
||||
if (roleIds && roleIds.length > 0) {
|
||||
for (const roleId of roleIds) {
|
||||
if (!commandsByRole[roleId]) {
|
||||
commandsByRole[roleId] = [];
|
||||
}
|
||||
commandsByRole[roleId].push(commandName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ajoutez chaque groupe de commandes à l'embed
|
||||
for (const roleId in commandsByRole) {
|
||||
const role = message.guild.roles.cache.get(roleId);
|
||||
const commands = commandsByRole[roleId].join('\n');
|
||||
embed.addFields({ name: `${role.name}`,value: commands , inline: true });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
module.exports = {
|
||||
name: 'setperm',
|
||||
description: 'Définit un rôle pour un niveau de permission ou une commande',
|
||||
async execute(message, args, client) {
|
||||
const botId = message.client.user.id;
|
||||
// Récupère le niveau de permission/la commande et le rôle
|
||||
const permissionOrCommand = args[0].toLowerCase();
|
||||
const role = message.mentions.roles.first();
|
||||
|
||||
// Vérifie si le rôle est valide
|
||||
if (!role) {
|
||||
return message.reply('Veuillez mentionner un rôle valide.');
|
||||
}
|
||||
|
||||
// Vérifie si c'est un niveau de permission ou une commande
|
||||
if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(permissionOrCommand)) {
|
||||
// C'est un niveau de permission
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let oldRoleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||
if (oldRoleIds) {
|
||||
// Si oldRoleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(oldRoleIds)) {
|
||||
oldRoleIds = [oldRoleIds];
|
||||
}
|
||||
const index = oldRoleIds.indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
oldRoleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${i}`, oldRoleIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${permissionOrCommand}`);
|
||||
if (!roleIds) {
|
||||
roleIds = [];
|
||||
} else if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
roleIds.push(role.id);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${permissionOrCommand}`, roleIds);
|
||||
message.reply(`La permission ${permissionOrCommand} a été défini sur ${role.name}.`);
|
||||
} else {
|
||||
// C'est une commande
|
||||
if (!client.commands.has(permissionOrCommand)) {
|
||||
return message.reply('Cette commande n\'existe pas.');
|
||||
}
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${permissionOrCommand}`);
|
||||
if (!roleIds) {
|
||||
roleIds = [];
|
||||
} else if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
roleIds.push(role.id);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.c${permissionOrCommand}`, roleIds);
|
||||
GestionDb.push(`${botId}.${message.guild.id}.commandNames`, permissionOrCommand);
|
||||
message.reply(`La role ${role.name} a maintenant accée a la commande ${permissionOrCommand} .`);
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user