const chalk = require('chalk'); const fs = require('fs'); const { readdirSync } = fs; const client = require('../index'); //SLASH COMMANDS console.log(chalk.blue.bold('SLASH COMMANDS 🟢')) readdirSync('./slashCommands').forEach(async (dir) => { const commands = readdirSync(`./slashCommands/${dir}/`).filter((file) => file.endsWith(".js") ); commands.map(async cmd => { let file = require(`../slashCommands/${dir}/${cmd}`); let name = file.name || "No command name."; let description = file.description || "No Description"; let options = file.options || []; const data = { name, description, options } let option = name == "No command name." ? '❌' : '✅'; console.log(`Loaded Slash Command ${option} | ${name}`); if (option == '✅') { if (file.userPermissions) file.defaultPermissions = false; setTimeout(async () => { client.slash_commands.set(name, { ...data, run: file.run }); await client.guilds.cache.get('821972674380038164').commands.create(data).then((cmd) => { const getRoles = (name) => { const permissions = data.find((x) => x.name === name).userPermissions; if (!permissions) return null; return guild.roles.cache.filter((x) => x.permissions.has(permissions) && !x.managed) }; const fullperms = cmd.reduce((accumulator, x) => { const Roles = getRoles(x.name); if (!Roles) return accumulator; const permissions = Roles.reduce((a, v) => { return [ ...a, { id: v.id, type: 'ROLE', permissions: true, s }, ]; }, []); return [ ...accumulator, { id: x.id, permissions, }, ]; }, []); guild.commands.permissions.set({fullperms}) }) }, 2500); } }); }); console.log('-'.repeat(30));