diff options
| author | Trey-Server <trey6979@gmail.com> | 2018-03-10 01:32:41 +0000 |
|---|---|---|
| committer | Trey-Server <trey6979@gmail.com> | 2018-03-10 01:32:41 +0000 |
| commit | 897ec0b5b50ddeafd09602c7424c5e2aa377241f (patch) | |
| tree | 8e870772ae6e9632e1c93402d38f3b75daeb5cee /test.js | |
| parent | 435dc9902a732c0cb3d3367359910670fc65f9f2 (diff) | |
| parent | e214e6e6f17294acc88e80d57cd90a878e71c5e6 (diff) | |
| download | PokeBot-897ec0b5b50ddeafd09602c7424c5e2aa377241f.tar.gz PokeBot-897ec0b5b50ddeafd09602c7424c5e2aa377241f.tar.bz2 PokeBot-897ec0b5b50ddeafd09602c7424c5e2aa377241f.zip | |
Merge branch 'master' of https://github.com/PokeWorld/PokeBot
Diffstat (limited to 'test.js')
| -rw-r--r-- | test.js | 72 |
1 files changed, 72 insertions, 0 deletions
@@ -0,0 +1,72 @@ +const Discord = require('discord.js'); +const bot = new Discord.Client(); +const fs = require('fs'); + +bot.commands = new Discord.Collection(); +bot.aliases = new Discord.Collection(); +bot.categories = new Discord.Collection(); +bot.queue = new Discord.Collection(); +bot.plugins = { music : require('./Plugins/Music.js') }; +cmdLoader(); + +async function cmdLoader() { + const categories = await fs.readdirSync('./commands'); + console.log(`Loading ${categories.length} categories(s) into memory\n`); + categories.forEach(x => { + loadGroup(x); + }); +} +async function loadGroup(name) { + const files = await fs.readdirSync(`./commands/${name}`); + + console.log(`Loading the category '${name}' into memory with a total of ${files.length} command(s)`); + + bot.commands.set(name, new Map()); + bot.aliases.set(name, new Map()); + + const commands = []; + files.forEach(x => { + loadCmd(name, x); + commands.push(x.split('.')[0]); + }); + + bot.categories.set(name, commands); + console.log(`The category ${name} has been loaded.\n`); +} + +async function loadCmd(category, cmd) { + try { + console.log(`Loading the Command ${cmd.split('.')[0]}`); + const command = require(`./commands/${category}/${cmd}`); + bot.commands.get(category).set(command.help.name, command); + command.conf.aliases.forEach(alias => { + console.log(`Loading the alias ${alias} for the command ${command.help.name}`); + bot.aliases.get(category).set(alias, command.help.name); + }); + } + catch (err) { + console.log(`An error has occured trying to load the command '${cmd.split('.')[0]}'`); + console.log(err.stack); + } +} + + +fs.readdir('./events', (err, files) => { + if (err) console.error(err); + console.log(`Attempting to load a total of ${files.length} events into the memory.`); + files.forEach(file => { + try { + const eventName = file.split('.')[0]; + const event = require(`./events/${file}`); + console.log(`Attempting to load the event "${eventName}".`); + bot.on(eventName, event.bind(null, bot)); + delete require.cache[require.resolve(`./events/${file}`)]; + } + catch (err) { + console.log('An error has occured trying to load a event. Here is the error.'); + console.log(err.stack); + } + }); + console.log('Event Loading complete!'); + console.log('\n'); +}); |
