From fa4d4d00be87d2d7b28cd39883068d50e032a1ea Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Wed, 26 Nov 2025 16:04:27 +0530 Subject: [PATCH] setup player --- game_flow.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/game_flow.py b/game_flow.py index ddb7d1d..54b17d6 100644 --- a/game_flow.py +++ b/game_flow.py @@ -85,6 +85,17 @@ class WebSocketHandler(object): class PlayerWebSocketHandler(WebSocketHandler): + @classmethod + async def setup_player( + cls, + name: str + ) -> 'PlayerWebSocketHandler': + """Create WS handler, login, connect, start listener.""" + handler = cls(name, name) + handler.login() + await handler.connect() + return handler + async def on_message(self, msg): if "match_data" not in msg: print(f"[{self.label}] {msg}") @@ -92,7 +103,10 @@ class PlayerWebSocketHandler(WebSocketHandler): md = msg["match_data"] op = int(md.get("op_code", 0)) - payload = json.loads(base64.b64decode(md["data"]).decode()) + data = md.get("data") + if not data: + return + payload = json.loads(base64.b64decode(data).decode()) if op == 1: print(f"[{self.label}] MOVE -> {payload}") @@ -275,13 +289,9 @@ TEST_SCENARIOS = [ ] async def main(): - # Create players - p1 = PlayerWebSocketHandler("player_one_123456", "P1") - p2 = PlayerWebSocketHandler("player_two_123456", "P2") - - # Connect - await p1.connect() - await p2.connect() + # Initialize players (login + connect + start listener) + p1 = await PlayerWebSocketHandler.setup_player("player_one_123456") + p2 = await PlayerWebSocketHandler.setup_player("player_two_123456") # Start listeners p1.start_listener() @@ -291,6 +301,8 @@ async def main(): match_id = await p1.create_match() await p2.join_match(match_id) + print(f"\n✅ Match ready: {match_id}\n") + await asyncio.sleep(1) for test_scenario in TEST_SCENARIOS: