48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
|
'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.`);
|
||
|
}
|