From aec9c6561cc8590804cc71ec5ca6a0e50ea2d34b Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Mon, 27 Jun 2022 10:39:22 -0700 Subject: [PATCH] admin-command rule working Signed-off-by: James Ketrenos --- server/routes/games.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/server/routes/games.js b/server/routes/games.js index ef8e11d..61657d9 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -708,9 +708,23 @@ const adminCommands = (game, action, value, query) => { switch (action) { case 'rules': - const rule = value.replace(/^=.*/, ''); + const rule = value.replace(/=.*$/, ''); let values = value.replace(/^.*=/, '').split(','); - console.log(rule, values); + const rules = {}; + rules[rule] = {}; + values.forEach(keypair => { + let [ key, value ] = keypair.split(':'); + if (value === 'true') { + value = true; + } else if (value === 'false') { + value = false; + } else if (parseInt(value) === value) { + value = parseInt(value); + } + rules[rule][key] = value; + }); + console.log(`admin - setRules -`, rules); + setRules(game, undefined, rules); break; case "debug": @@ -3390,7 +3404,7 @@ const part = (peers, session) => { const getName = (session) => { - return session.name ? session.name : session.id; + return session ? (session.name ? session.name : session.id) : 'Admin'; } const saveGame = async (game) => {