From d7c17fb262347682ace1dd92c9c76435f236306e Mon Sep 17 00:00:00 2001 From: AURUMVORXX Date: Thu, 6 Nov 2025 20:57:25 +0500 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=A0=D0=B5=D0=B3=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pyg2o/server.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pyg2o/server.py b/src/pyg2o/server.py index ad4d4c8..b252e03 100644 --- a/src/pyg2o/server.py +++ b/src/pyg2o/server.py @@ -22,6 +22,7 @@ class Server: _logger: loguru.Logger = loguru.logger _static_tokens: list[str] = [] _temp_tokens: list[str] = [] + _registered_clients: dict[int, list] = {} _requests: WeakValueDictionary[str, asyncio.Future] = WeakValueDictionary() _topics = TopicWeakDict() _topic_lock = asyncio.Lock() @@ -161,6 +162,12 @@ class Server: case {'event': 'init_temp_tokens', 'tokens': tokens}: cls._temp_tokens = cls._temp_tokens + list(tokens.items()) + case {'event': 'register_client', 'playerid': playerid}: + try: + cls._registered_clients[playerid].append(connection) + except KeyError: + cls._registered_clients[playerid] = [connection] + case {'event': 'sq_response', 'uuid': uuid, 'data': data}: try: cls._requests[uuid].set_result(data) @@ -173,6 +180,8 @@ class Server: except KeyError: kwargs['uuid'] = uuid kwargs['connection'] = connection + playerid = next((key for key, values in cls._registered_clients.items() if connection in values), None) + if playerid is not None: kwargs['playerid'] = playerid asyncio.create_task(call_event(event, **kwargs)) case _: