aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/commands/admin/reload.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/commands/admin/reload.js')
-rw-r--r--server/src/commands/admin/reload.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/server/src/commands/admin/reload.js b/server/src/commands/admin/reload.js
new file mode 100644
index 0000000..e2cfbe6
--- /dev/null
+++ b/server/src/commands/admin/reload.js
@@ -0,0 +1,35 @@
+/*
+ Description: Clears and resets the command modules, outputting any errors
+*/
+
+exports.run = async (core, server, socket, data) => {
+ if (socket.uType != 'admin') {
+ // ignore if not admin
+ return;
+ }
+
+ let loadResult = core.managers.dynamicImports.reloadDirCache('src/commands');
+ loadResult += core.commands.loadCommands();
+
+ if (loadResult == '') {
+ loadResult = `Loaded ${core.commands._commands.length} commands, 0 errors`;
+ } else {
+ loadResult = `Loaded ${core.commands._commands.length} commands, error(s): ${loadResult}`;
+ }
+
+ server.reply({
+ cmd: 'info',
+ text: loadResult
+ }, socket);
+
+ server.broadcast({
+ cmd: 'info',
+ text: loadResult
+ }, { uType: 'mod' });
+};
+
+exports.info = {
+ name: 'reload',
+ description: '(Re)loads any new commands into memory, outputs errors if any'
+};
+