aboutsummaryrefslogtreecommitdiffstats
path: root/server/commands/admin/addmod.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/commands/admin/addmod.js')
-rw-r--r--server/commands/admin/addmod.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/server/commands/admin/addmod.js b/server/commands/admin/addmod.js
new file mode 100644
index 0000000..4c13b22
--- /dev/null
+++ b/server/commands/admin/addmod.js
@@ -0,0 +1,47 @@
+/*
+ Description: Adds the target trip to the mod list then elevates the uType
+*/
+
+exports.run = async (core, server, socket, data) => {
+ if (socket.uType != 'admin') {
+ // ignore if not admin
+ return;
+ }
+
+ let mod = {
+ trip: data.trip
+ }
+
+ core.config.mods.push(mod); // purposely not using `config.set()` to avoid auto-save
+
+ let newMod = server.findSockets({ trip: data.trip });
+
+ if (newMod.length !== 0) {
+ for (let i = 0, l = newMod.length; i < l; i++) {
+ newMod[i].uType = 'mod';
+
+ server.send({
+ cmd: 'info',
+ text: 'You are now a mod.'
+ }, newMod[i]);
+ }
+ }
+
+ server.reply({
+ cmd: 'info',
+ text: `Added mod trip: ${data.trip}`
+ }, socket);
+
+ server.broadcast({
+ cmd: 'info',
+ text: `Added mod trip: ${data.trip}`
+ }, { uType: 'mod' });
+};
+
+exports.requiredData = ['trip'];
+
+exports.info = {
+ name: 'addmod',
+ usage: 'addmod {trip}',
+ description: 'Adds target trip to the config as a mod and upgrades the socket type'
+};