setup player

This commit is contained in:
2025-11-26 16:04:27 +05:30
parent 22993d6d37
commit fa4d4d00be

View File

@@ -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: