'use strict'; const fs = require('fs'), path = require('path'); function getPlugins(srcpath) { return fs.readdirSync(srcpath); } let plugin_directory = path.join(__dirname, 'modules'); let plugins = getPlugins(plugin_directory); exports.init = function init() { load_plugins(); }; function load_plugins() { const dbot = require('./bot.js'); let commandCount = 0; let otherFunc = 0; for (let i = 0; i < plugins.length; i++) { let plugin; try { plugin = require(`${plugin_directory}/${plugins[i]}`); } catch (err) { console.log(`Improper setup of the '${plugins[i]}' plugin. : ${err}`); } if (plugin) { if ('commands' in plugin) { for (let j = 0; j < plugin.commands.length; j++) { if (plugin.commands[j] in plugin) { dbot.addCommand(plugin.commands[j], plugin[plugin.commands[j]]); commandCount++; } } } if ('custom' in plugin) { for (let j = 0; j < plugin.custom.length; j++) { if (plugin.custom[j] in plugin) { dbot.addCustomFunc(plugin[plugin.custom[j]]); otherFunc++; } } } } } console.log(`Loaded ${dbot.commandCount()} chat commands and ${otherFunc} custom functions.`); }