Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var bot = require('../../commandclient.js')
  2. const config = require("../../config.json");
  3. const reload = require('require-reload')(require);
  4. const fs = require('fs');
  5. const unRequire = require("un-require");
  6. //
  7.  
  8. module.exports = {
  9.     label: 'load',
  10.     enabled: true,
  11.     isSubcommand: false,
  12.     generator:async (msg, args) => {
  13.         let eventaliases = ['e', 'ev', 'event']
  14.  
  15.         if(eventaliases.includes(args[0])) {
  16.                 try {
  17.                 let event = bot._events[args[1]];
  18.                 if (event) {
  19.                      delete bot._events[args[1]]
  20.                  }
  21.                  event = require('../events/' + args[1]);
  22.  
  23.                 bot.on(event.event, event.handler);
  24.  
  25.                 msg.channel.createMessage(`<:done:331250330367164437> Successfully loaded event \`${args[1]}\`!`)
  26.                 } catch (e) {
  27.                     console.warn(`Error while loading event ${args[1]}!\n${e.stack}.`)
  28.                     msg.channel.createMessage(`<:notdone:334852376034803714> Error: \`${e.message}\`.`)
  29.                 }
  30.                 return;
  31.             }
  32.  
  33.             try {
  34.                 let getcmdname = args[0].split('bot/').join('').split('misc/').join('').split('dev/').join('').split('mod/').join('').split('music/').join('').split('currency/').join('').split('settings/').join('')
  35.                 bot.unregisterCommand(getcmdname);
  36.                 let c = reload(`../${args[0]}`);
  37.                 var filess = args.join(" ");
  38.                 if (c.enabled && !c.isSubcommand) {
  39.                     let cmd = bot.registerCommand(c.label, c.generator, c.options);
  40.                     function unloadSubcommands(args) {
  41.                         fs.readdir(`commands/${filess}`,async (err, files)=> {
  42.                             if (err) {
  43.                                 //console.error(' Error:' + err);
  44.                             } else {
  45.                                 try {
  46.                                     let subcmds = files.filter(f => f.includes(`${args[1]}_`));
  47.                                     if(subcmds !== []) {
  48.                                         subcmds.forEach((subcmd) => {
  49.                                             unload(require.resolve('../' + subcmd));
  50.                                         });
  51.                                     }
  52.                                 } catch (e) {
  53.                                     console.warn(`Error with unloading command (for reload) ${args[0]}:\n${e.stack}`);
  54.                                     msg.channel.createMessage(`<:notdone:334852376034803714> Error: ${e.message}`)
  55.                                 }
  56.                             }
  57.                         });
  58.                     }
  59.                     unloadSubcommands(args);
  60.                     registerSubcommands(c, cmd);
  61.                     function registerSubcommands(cmd, parent) {
  62.                         cmd.subcommands = cmd.subcommands || [];
  63.                         cmd.subcommands.forEach((subcmd)=> {
  64.                             if (subcmd.enabled) {
  65.                                 let c = parent.registerSubcommand(subcmd.label, subcmd.generator, subcmd.options);
  66.                                 registerSubcommands(subcmd, c);
  67.                             }
  68.                         });
  69.                     }
  70.                 }
  71.                 msg.channel.createMessage(`\`${args[0]}\` has been successfully reloaded! <:done:331250330367164437>`)
  72.             } catch (e) {
  73.                 console.warn(`Error while loading command ${args[0]}!\n${e.stack}.`)
  74.                 msg.channel.createMessage(`<:notdone:334852376034803714> Error: \`${e.message}\`.`)
  75.             }
  76.            
  77.     },
  78.     options: {
  79.         description: "Loads/Reloads commands.",
  80.         fullDescription: "Makes the bot load/reload a command.",
  81.         usage: `>load <folder/command> | >reload <folder/command>`,
  82.         requirements: {
  83.             "userIDs": [config.dev],
  84.         },
  85.         cooldown: null,
  86.         aliases: ['reload', 'enable'],
  87.     },
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement