From c719020e17cb1c98da55be6cc7efe0e50ab51ffa Mon Sep 17 00:00:00 2001 From: marzavec Date: Sat, 29 Sep 2018 23:44:36 -0700 Subject: Added hooks, modules and cleaned up code --- server/src/commands/admin/removemod.js | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 server/src/commands/admin/removemod.js (limited to 'server/src/commands/admin/removemod.js') diff --git a/server/src/commands/admin/removemod.js b/server/src/commands/admin/removemod.js new file mode 100644 index 0000000..dda822c --- /dev/null +++ b/server/src/commands/admin/removemod.js @@ -0,0 +1,50 @@ +/* + Description: Removes target trip from the config as a mod and downgrades the socket type +*/ + +// module main +exports.run = async (core, server, socket, data) => { + // increase rate limit chance and ignore if not admin + if (socket.uType != 'admin') { + return server._police.frisk(socket.remoteAddress, 20); + } + + // remove trip from config + core.config.mods = core.config.mods.filter(mod => mod.trip !== data.trip); + + // find targets current connections + let targetMod = server.findSockets({ trip: data.trip }); + if (newMod.length !== 0) { + for (let i = 0, l = newMod.length; i < l; i++) { + // downgrade privilages + targetMod[i].uType = 'user'; + + // inform ex-mod + server.send({ + cmd: 'info', + text: 'You are now a user.' + }, targetMod[i]); + } + } + + // return success message + server.reply({ + cmd: 'info', + text: `Removed mod trip: ${data.trip}, remember to run 'saveconfig' to make it permanent` + }, socket); + + // notify all mods + server.broadcast({ + cmd: 'info', + text: `Removed mod: ${data.trip}` + }, { uType: 'mod' }); +}; + +// module meta +exports.requiredData = ['trip']; +exports.info = { + name: 'removemod', + description: 'Removes target trip from the config as a mod and downgrades the socket type', + usage: ` + API: { cmd: 'removemod', trip: '' }` +}; -- cgit v1.2.1