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) => {