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}`); } console.log(triggers); 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) { console.log(t); if (msg.content.startsWith(`!${t}`)) { console.log(`+ Bot module ${triggers[t]} triggered.`); await bot_modules[triggers[t]].action(msg); break; } } }); } main();