diff options
author | Thomas Voss <thomasvoss@live.com> | 2022-01-16 22:25:11 +0100 |
---|---|---|
committer | Thomas Voss <thomasvoss@live.com> | 2022-01-16 22:25:11 +0100 |
commit | 31e81bd0dafa8f2c5b43c0d426b333836c32a60e (patch) | |
tree | e232273ab001e9004fcd68c64e7be67481ad6c71 /draughts | |
parent | feecdecf2559846da48f08a2faaaefb96732fb59 (diff) |
Fix bug allowing for negative ongoing games
Previously if the game ended, the players could still spam the resign
button or close their tab to decrement the `stats.ongoingGames'
counter. This patch removes the ability to do so by checking if the
game is still in the environment before doing anything.
Diffstat (limited to 'draughts')
-rw-r--r-- | draughts/app.js | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/draughts/app.js b/draughts/app.js index 94dca46..e7fd6a1 100644 --- a/draughts/app.js +++ b/draughts/app.js @@ -58,11 +58,11 @@ wss.on("connection", ws => { * array. */ ws.on("close", () => { - if (game.ongoing) { + if (game.ongoing && env.games.includes(game)) { game.messageOpponent({ head: Messages.DISCONNECT }, ws) stats.ongoingGames-- + stats.totalGames-- } - stats.totalGames-- env.removeGame(game) }) @@ -70,10 +70,11 @@ wss.on("connection", ws => { msg = JSON.parse(msg) switch (msg.head) { case Messages.RESIGN: - if (game.ongoing) + if (game.ongoing && env.games.includes(game)) { game.messageOpponent(msg, ws) - stats.ongoingGames-- - stats.totalGames-- + stats.ongoingGames-- + stats.totalGames-- + } env.removeGame(game) break case Messages.MOVED: |