const Eris = require("eris"); const logger = require("npmlog"); const fs = require("fs"); const {resolve} = require("path"); const config = require("../config.json"); const Command = require("./lib/command.js"); const CommandDispatcher = require("./lib/commandDispatcher.js"); const bot = new Eris(config.token, { defaultImageFormat: "png", defaultImageSize: 1024, }); const commands = new Eris.Collection(); function registerCommand(cmdObj) { if (cmdObj instanceof Command) { commands.set(cmdObj.name, cmdObj); const aliases = cmdObj.getAliases(); logger.info( "hf:cmd", "Registered command '%s'%s", cmdObj.name, aliases.length > 0 ? ` (aliases: ${aliases.join(", ")})` : "" ); } } global.hf = { bot, config, commands, registerCommand, }; for (const file of fs.readdirSync(resolve(__dirname, "modules"))) { require(resolve(__dirname, "modules", file)); logger.info("hf:modules", "Loaded module: '%s'", file); } bot.on("messageCreate", CommandDispatcher); bot.on("messageUpdate", (msg) => { const oneDay = Date.now() - 86400000; if (msg.timestamp > oneDay && !msg.hasRan) { CommandDispatcher(msg); } }); bot.on("ready", async () => { logger.info("hf:main", "Connected to Discord."); logger.info( "hf:main", "Logged in as: %s#%s (%s)", bot.user.username, bot.user.discriminator, bot.user.id ); const channel = await bot.getDMChannel(config.owner_id); if (channel) { channel.createMessage(":white_check_mark: Loaded HiddenPhox."); } }); bot.connect();