70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
const util = require("util");
|
|
const createBot = require("./bot.js");
|
|
// TODO: Load a default config
|
|
const fs = require("fs");
|
|
const fileExist = require("./util/file-exists");
|
|
const path = require("path");
|
|
const readline = require("readline");
|
|
|
|
const rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
});
|
|
|
|
function load() {
|
|
//const config = require('./config.js')
|
|
|
|
|
|
|
|
require("dotenv").config();
|
|
const bots = [];
|
|
for (const options of config.bots) {
|
|
const bot = createBot(options);
|
|
bots.push(bot);
|
|
bot.bots = bots;
|
|
bot.options.username;
|
|
|
|
bot.loadModule = (module) => module(bot, options);
|
|
|
|
for (const filename of fs.readdirSync(path.join(__dirname, "modules"))) {
|
|
try {
|
|
const module = require(path.join(__dirname, "modules", filename));
|
|
bot.loadModule(module);
|
|
} catch (error) {
|
|
console.error(
|
|
"Failed to load module",
|
|
filename,
|
|
":",
|
|
error,
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
bot.console.useReadlineInterface(rl);
|
|
|
|
|
|
try {
|
|
bot.on("error", console.error);
|
|
} catch (error) {
|
|
console.log(error.stack);
|
|
}
|
|
|
|
}
|
|
}
|
|
async function checkConfig() {
|
|
if (!(await fileExist(path.join(__dirname, "config.js")))) {
|
|
console.error("Config not found! Creating a new Config from ");
|
|
await fs.copyFileSync(
|
|
path.join(__dirname, "default.js"),
|
|
path.join(__dirname, "config.js"),
|
|
);
|
|
}
|
|
|
|
|
|
config = require("./config.js");
|
|
|
|
load();
|
|
}
|
|
|
|
checkConfig();
|