From d00d2231a4382a0b3e47758b53b735f578203ac0 Mon Sep 17 00:00:00 2001 From: Namonay Date: Wed, 1 May 2024 21:29:23 +0200 Subject: [PATCH] add: morpion: backend disconnect --- frontend/static/js/api/game/tictactoe/TicTacToeGame.js | 5 +++-- games/consumers.py | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/frontend/static/js/api/game/tictactoe/TicTacToeGame.js b/frontend/static/js/api/game/tictactoe/TicTacToeGame.js index cc29116..ffbaad5 100644 --- a/frontend/static/js/api/game/tictactoe/TicTacToeGame.js +++ b/frontend/static/js/api/game/tictactoe/TicTacToeGame.js @@ -36,18 +36,19 @@ class TicTacToe async onReceive(messageData) { + console.log(messageData) switch (messageData.detail) { case 'x': case 'o': this.sign = messageData.detail; this.turn = messageData.detail == "x"; - if (this.turn && this.game.started == false) - this.setOutline(4, false); break; case 'game_start': this.game.started = true; + if (this.turn) + this.setOutline(4, false); break; case 'game_move': diff --git a/games/consumers.py b/games/consumers.py index 5e56e89..08ba4d4 100644 --- a/games/consumers.py +++ b/games/consumers.py @@ -38,9 +38,10 @@ class TicTacToeWebSocket(WebsocketConsumer): self.game: TicTacToeGame = game_manager.get(self.game_id, "tictactoe") + if (self.game is None): + return self.member = self.game.join(self.user.pk, self) - self.lastmovetimer = time.time() if (isinstance(self.member, TicTacToePlayer)): self.member.send(self.member.sign) @@ -61,13 +62,16 @@ class TicTacToeWebSocket(WebsocketConsumer): return if (self.game.checkWin() != False): self.winner = self.game.checkWin() + self.game.model.finish(self.user) self.game.broadcast("game_end", {"winning_sign": self.winner}) self.game.broadcast("game_move", data, [self.member]) pass def disconnect(self, event): - self.member.socket = None - self.game.broadcast("opponent_leave_timer") + try: + self.member.socket = None + except: + pass class PongWebSocket(WebsocketConsumer):