const { Perms } = require("../Validation/permissions"); const { Client, ReactionUserManager } = require("discord.js"); const { promisify } = require("util"); const { glob } = require("glob"); const { Ascii } = require("ascii-table") const PG = promisify(glob); /** * * @param {Client} client */ module.exports = async (client) => { const Table = new Ascii("Commande chargées"); CommandsArray = []; (await PG (`${procces.cwd()}/Commands/*/*.js`)).map(async (file) =>{ const command = require(file); if(!command.name) return Table.addRow(file.split("n!")[7], "⛔ - ERREUR", "Nom manquant"); if(!command.context && command.description) return Table.addRow(command.name, "⛔ - ERREUR", "Description manquante"); if(command.permission) { if(Perms.includes(command.permission)) command.defaultPermission = false ; else return Table.addRow(command.name, "⛔ - ERREUR", "Permission invalide") } client.command.set(command.name, command); CommandsArray.push(command) await Table.addRow(command.name, "✅ - SUCCES") }); console.log(Table.toString()); // Pemet de vérifier les permission // client.on("ready", async () => { const MainGuild = await client.guilds.cache.get(971381065782558750); MainGuild.commands.set(CommandArray).then(async (command) => { const Roles = (commandName) => { const cmdPerms = CommandsArray.find((c) =>c.name === commandName).permission; if(!cmdPemrs) return null; return MainGuild.roles.cache.filter((r) => r.permissions.has(cmdPerms)); } const fullPermission = command.reduce((accumulator, r) => { const roles = Roles(r.name); if(!roles) return accumulator; const permissions = roles.reduce((a, r) => { return [...a, {id: r,id, type: "ROLE" , permission: true}] }, []); return [...accumulator, {id: r.id, permissions}]; }, []); await MainGuild.commands.permissions.set({ fullPermission }); }) }); }