const Discord = require(`discord.js`); const client = new Discord.Client(); const fs = require(`fs`); const path = require(`path`); const functions = require(path.join(__dirname, `functions.js`)); require(`dotenv`).config(); [`aliases`, `commands`].forEach(x => client[x] = new Discord.Collection()); function LOADEVENTS(src) { if (fs.existsSync(src)) { if (fs.statSync(src).isDirectory()) { return fs.readdirSync(src).forEach((childItemName) => { return LOADEVENTS(path.join(src, childItemName)); }); } else { const options = require(path.join(src)); return client.on(src.split(`\\`).pop().split(`.`)[0], options.bind(null, client)); }; }; }; LOADEVENTS(path.join(__dirname, `events`)); async function LOADCOMMANDS(src) { if (fs.existsSync(src)) { if (fs.statSync(src).isDirectory()) { return fs.readdirSync(src).forEach((childItemName) => { return LOADCOMMANDS(path.join(src, childItemName)); }); } else { const options = require(path.join(src)); const name = options.name || src.split(`\\`).pop().split(`.`)[0]; if (options.aliases) await options.aliases.forEach(a => client.aliases.set(a, name)); return await client.commands.set(name, options); }; }; }; LOADCOMMANDS(path.join(__dirname, `commands`)); client.login(functions.ENVFORMATVALUE(process.env.TOKEN));