From aa08ae9d5a20f9a95594aa67547bf3228a0945b8 Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Fri, 11 Mar 2022 10:48:45 -0800 Subject: [PATCH] Fixed unsupported elements from session Signed-off-by: James Ketrenos --- server/routes/games.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/server/routes/games.js b/server/routes/games.js index 940c8bd..78753d3 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -2928,6 +2928,9 @@ const sendToPlayers = async (game, update) => { } const getFilteredUnselected = (game) => { + if (!game.unselected) { + return []; + } return game.unselected .filter(session => session.live) .map(session => session.name); @@ -3154,10 +3157,15 @@ router.ws("/ws/:id", async (ws, req) => { break; default: if (field in game) { - console.warn(`WARNING: Requested GET not-privatized field: ${field}`); + console.warn(`WARNING: Requested GET not-privatized/sanitized field: ${field}`); update[field] = game.field; } else { - console.warn(`WARNING: Requested GET unsupported field: ${field}`); + if (field in session) { + console.warn(`WARNING: Requested GET not-sanitized field: ${field}`); + update[field] = session.field; + } else { + console.warn(`WARNING: Requested GET unsupported field: ${field}`); + } } break; } @@ -3570,15 +3578,15 @@ const resetGame = (game) => { tileOrder: game.tileOrder, signature: game.signature, players: game.players, - stolen: {} + stolen: {}, + longestRoad: undefined, + longestRoadLength: 0, + largestArmy: undefined, + largestArmySize: 0, + winner: undefined, + longestRoad: undefined }); - delete game.longestRoad; - delete game.largestArmy; - delete game.longestRoadLength; - delete game.winner; - delete game.longestRoad; - /* Reset all player data */ for (let color in game.players) { clearPlayer(game.players[color]); @@ -3663,8 +3671,10 @@ const createGame = (id) => { R: newPlayer(), B: newPlayer(), W: newPlayer() - } - }; + }, + sessions: {}, + unselected: [] + }; [ "pips", "borders", "tiles" ].forEach((field) => { game[field] = staticData[field]