2018-03-10 15:47:00 +08:00
|
|
|
/*
|
2018-03-14 13:26:53 +08:00
|
|
|
Description: Clears and resets the command modules, outputting any errors
|
2018-03-10 15:47:00 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
exports.run = async (core, server, socket, data) => {
|
2018-06-04 15:07:24 +08:00
|
|
|
// increase rate limit chance and ignore if not admin
|
2018-03-10 15:47:00 +08:00
|
|
|
if (socket.uType != 'admin') {
|
2018-06-04 15:07:24 +08:00
|
|
|
server._police.frisk(socket.remoteAddress, 20);
|
|
|
|
|
2018-03-10 15:47:00 +08:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-06-04 15:07:24 +08:00
|
|
|
// do command reloads and store results
|
2018-03-10 15:47:00 +08:00
|
|
|
let loadResult = core.managers.dynamicImports.reloadDirCache('src/commands');
|
|
|
|
loadResult += core.commands.loadCommands();
|
|
|
|
|
2018-06-04 15:07:24 +08:00
|
|
|
// build reply based on reload results
|
2018-03-11 14:41:17 +08:00
|
|
|
if (loadResult == '') {
|
2018-03-14 13:26:53 +08:00
|
|
|
loadResult = `Loaded ${core.commands._commands.length} commands, 0 errors`;
|
|
|
|
} else {
|
|
|
|
loadResult = `Loaded ${core.commands._commands.length} commands, error(s): ${loadResult}`;
|
2018-03-11 14:41:17 +08:00
|
|
|
}
|
2018-03-10 15:47:00 +08:00
|
|
|
|
2018-06-04 15:07:24 +08:00
|
|
|
// reply with results
|
2018-03-10 15:47:00 +08:00
|
|
|
server.reply({
|
|
|
|
cmd: 'info',
|
|
|
|
text: loadResult
|
|
|
|
}, socket);
|
|
|
|
|
2018-06-04 15:07:24 +08:00
|
|
|
// notify mods of reload #transparency
|
2018-03-10 15:47:00 +08:00
|
|
|
server.broadcast({
|
|
|
|
cmd: 'info',
|
|
|
|
text: loadResult
|
|
|
|
}, { uType: 'mod' });
|
|
|
|
};
|
|
|
|
|
2018-05-13 18:33:22 +08:00
|
|
|
exports.info = {
|
|
|
|
name: 'reload',
|
|
|
|
description: '(Re)loads any new commands into memory, outputs errors if any'
|
|
|
|
};
|