From 872ec9e413468ab98050c47bad0cb69cfe1498fd Mon Sep 17 00:00:00 2001 From: Cynthia Foxwell Date: Tue, 1 Jun 2021 12:59:59 -0600 Subject: [PATCH] reload and restart ports --- src/modules/bot.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/modules/bot.js diff --git a/src/modules/bot.js b/src/modules/bot.js new file mode 100644 index 0000000..6db83e6 --- /dev/null +++ b/src/modules/bot.js @@ -0,0 +1,40 @@ +const Command = require("../lib/command.js"); +const CATEGORY = "bot"; + +const logger = require("npmlog"); + +const reload = new Command("reload"); +reload.ownerOnly = true; +reload.category = CATEGORY; +reload.helpText = "Reloads a module."; +reload.callback = function (msg, line) { + try { + require.resolve(`./${line}.js`); + } catch (err) { + if (err.code == "MODULE_NOT_FOUND") { + return "Module not found."; + } else { + return `:warning: An error occurred: \`\`\`\n${err}\`\`\``; + } + } + + try { + logger.info("hf:modules", "Reloading module: '%s'", line); + delete require.cache[require.resolve(`./${line}.js`)]; + require(`./${line}.js`); + return {reaction: "\uD83D\uDC4C"}; + } catch (err) { + return `:warning: An error occurred: \`\`\`\n${err}\`\`\``; + } +}; +hf.registerCommand(reload); + +const restart = new Command("restart"); +restart.ownerOnly = true; +restart.category = CATEGORY; +restart.helpText = "Restarts the bot."; +restart.callback = function () { + setTimeout(process.exit, 500); + return {reaction: "\uD83D\uDD04"}; +}; +hf.registerCommand(restart);