mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-07 14:55:25 +02:00
71 lines
2.7 KiB
JavaScript
71 lines
2.7 KiB
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
const { EmbedBuilder } = require('discord.js');
|
|
|
|
module.exports = {
|
|
name: 'perm',
|
|
aliases: ['permissions', 'permissionslist', 'permis', 'perms', 'permlist', 'permliste', 'perml'],
|
|
description: 'Affiche les rôles pour chaque niveau de permission et commande',
|
|
emote: '🛡️',
|
|
utilisation: 'perm',
|
|
category: 'gestion',
|
|
|
|
async execute(message, client) {
|
|
const db = new sqlite3.Database('myDatabase.db');
|
|
const botId = message.client.user.id;
|
|
const guildId = message.guild.id;
|
|
const embed = new EmbedBuilder()
|
|
.setTitle('Rôles de permission et de commande')
|
|
.setColor('#0099ff');
|
|
|
|
let data = await new Promise((resolve, reject) => {
|
|
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
reject(err);
|
|
}
|
|
resolve(row ? JSON.parse(row.value) : {});
|
|
});
|
|
});
|
|
|
|
if (!data.permissions) {
|
|
data.permissions = {};
|
|
}
|
|
|
|
for (let i = 1; i <= 9; i++) {
|
|
let roleIds = data.permissions[guildId] && data.permissions[guildId].p && data.permissions[guildId].p[i];
|
|
let roles = 'Aucun rôle défini';
|
|
if (roleIds) {
|
|
if (!Array.isArray(roleIds)) {
|
|
roleIds = [roleIds];
|
|
}
|
|
roles = roleIds.map(id => `<@&${id}>`).join(', ');
|
|
}
|
|
embed.addFields({ name: `Perm ${i}`, value: roles});
|
|
}
|
|
|
|
const commandNames = data.permissions[guildId] && data.permissions[guildId].commandNames;
|
|
if (commandNames && commandNames.length > 0) {
|
|
const commandsByRole = {};
|
|
|
|
for (const commandName of commandNames) {
|
|
const roleIds = data.permissions[guildId] && data.permissions[guildId].c && data.permissions[guildId].c[commandName];
|
|
if (roleIds && roleIds.length > 0) {
|
|
for (const roleId of roleIds) {
|
|
if (!commandsByRole[roleId]) {
|
|
commandsByRole[roleId] = [];
|
|
}
|
|
commandsByRole[roleId].push(commandName);
|
|
}
|
|
}
|
|
}
|
|
|
|
for (const roleId in commandsByRole) {
|
|
const role = message.guild.roles.cache.get(roleId);
|
|
const commands = commandsByRole[roleId].join('\n');
|
|
embed.addField(`${role.name}`, commands, true);
|
|
}
|
|
}
|
|
|
|
message.channel.send({ embeds: [embed] });
|
|
},
|
|
}; |