HiddenPhox/src/index.js

67 lines
1.5 KiB
JavaScript

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();