game: add: backend input verification
This commit is contained in:
@ -8,6 +8,10 @@ import json
|
||||
|
||||
from .objects.GameManager import GameManager
|
||||
|
||||
from .objects.tictactoe.TicTacToePlayer import TicTacToePlayer
|
||||
|
||||
import time
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@ -16,7 +20,6 @@ if TYPE_CHECKING:
|
||||
from .objects.pong.PongGame import PongGame
|
||||
|
||||
from .objects.tictactoe.TicTacToeGame import TicTacToeGame
|
||||
from .objects.tictactoe.TicTacToePlayer import TicTacToePlayer
|
||||
from .objects.tictactoe.TicTacToeSpectator import TicTacToeSpectator
|
||||
|
||||
game_manager: GameManager = GameManager()
|
||||
@ -24,7 +27,7 @@ game_manager: GameManager = GameManager()
|
||||
class TicTacToeWebSocket(WebsocketConsumer):
|
||||
|
||||
def connect(self):
|
||||
|
||||
|
||||
self.user: User = self.scope["user"]
|
||||
if (self.user.pk is None):
|
||||
self.user.pk = 0
|
||||
@ -36,19 +39,27 @@ class TicTacToeWebSocket(WebsocketConsumer):
|
||||
self.game: TicTacToeGame = game_manager.get(self.game_id, "tictactoe")
|
||||
|
||||
self.member = self.game.join(self.user.pk, self)
|
||||
|
||||
self.member.send("x" if self.game._everbody_is_here() else "o")
|
||||
|
||||
if (self.game._everbody_is_here()):
|
||||
if (isinstance(self.member, TicTacToePlayer)):
|
||||
self.member.send(self.member.sign)
|
||||
|
||||
if (self.game._everbody_is_here() and self.game.model.started == False):
|
||||
self.game.broadcast("game_start")
|
||||
self.game.model.start()
|
||||
|
||||
def receive(self, text_data=None, bytes_data=None):
|
||||
print(text_data)
|
||||
self.game.broadcast("", json.loads(text_data), [self.member])
|
||||
data = json.loads(text_data)
|
||||
|
||||
if (data.get("targetMorpion") is not None and data.get("targetCase") is not None):
|
||||
if (self.game.add(data, self.member) == False):
|
||||
return
|
||||
self.game.broadcast("", data, [self.member])
|
||||
pass
|
||||
|
||||
def disconnect(self, event):
|
||||
self.member.socket = None
|
||||
self.game.time = time.time()
|
||||
self.game.broadcast("opponent_leave_timer")
|
||||
|
||||
class PongWebSocket(WebsocketConsumer):
|
||||
|
||||
|
Reference in New Issue
Block a user