53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
const Discord = require("discord.js");
|
|
const Gamedig = require('gamedig');
|
|
const client = new Discord.Client();
|
|
const fs = require('fs');
|
|
const request = require('request');
|
|
const rp = require('request-promise-native');
|
|
const striptags = require('striptags');
|
|
const glob = require('glob');
|
|
const path = require('path');
|
|
const twitter = require('twitter');
|
|
|
|
var markov = require('markov');
|
|
var m = markov(2);
|
|
|
|
let bot_modules = [];
|
|
let triggers = [];
|
|
|
|
async function main() {
|
|
console.log("Loading modules...");
|
|
let modules = glob.sync('./bot-modules/**/module.js');
|
|
|
|
for(const mod of modules) {
|
|
const parts = mod.split('/');
|
|
const mod_name = parts[parts.length-2];
|
|
const mod_cls = require(mod);
|
|
const mod_obj = new mod_cls();
|
|
bot_modules[mod_name] = mod_obj;
|
|
|
|
for(const t of mod_obj.matches) {
|
|
triggers[t] = mod_name;
|
|
}
|
|
|
|
console.log(`## Loaded ${mod_name}`);
|
|
|
|
}
|
|
|
|
client.login('MzYyNzU1MzE3MTczNTgzODcy.DK3R1A.8M22ZkNaaoHy-ifBQwVivSU7svY');
|
|
client.on('ready', () => {
|
|
console.log(`Logged into Discord as ${client.user.tag}`);
|
|
});
|
|
client.on('message', async (msg) => {
|
|
for(const t in triggers) {
|
|
if (msg.content.startsWith(`!${t}`)) {
|
|
console.log(`+ Bot module ${triggers[t]} triggered.`);
|
|
await bot_modules[triggers[t]].action(msg);
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
main();
|