Add client.identifiers;

This commit is contained in:
Maxim Khomutov 2023-07-21 02:41:45 +03:00
parent b345588c02
commit 98b4878339
3 changed files with 17 additions and 3 deletions

View File

@ -33,6 +33,7 @@ class Client:
self.roles = None
self._guest = True
self._ready = False
self._identifiers = []
self._cars = [None] * 21 # Max 20 cars per player + 1 snowman
self._snowman = {"id": -1, "packet": ""}
self._connect_time = 0
@ -65,6 +66,10 @@ class Client:
def ready(self):
return self._ready
@property
def identifiers(self):
return self._identifiers
@property
def cars(self):
return self._cars
@ -381,8 +386,13 @@ class Client:
des = f"Od:{self.cid}-{car_id}"
await self._send(des)
async def _delete_car(self, raw_data):
cid, car_id = self._get_cid_vid(raw_data)
async def _delete_car(self, raw_data=None, car_id=None):
if not car_id and raw_data:
cid, car_id = self._get_cid_vid(raw_data)
else:
cid = self.cid
raw_data = f"Od:{self.cid}-{car_id}"
if car_id != -1 and self.cars[car_id]:

View File

@ -33,6 +33,7 @@ class Client:
self._guest = True
self.__alive = True
self._ready = False
self._identifiers = []
self._cars: List[Optional[Dict[str, int]]] = []
self._snowman: Dict[str, Union[int, str]] = {"id": -1, "packet": ""}
@ -51,6 +52,8 @@ class Client:
@property
def ready(self) -> bool: ...
@property
def identifiers(self) -> list: ...
@property
def cars(self) -> List[dict | None]: ...
def is_disconnected(self) -> bool: ...
async def kick(self, reason: str) -> None: ...
@ -62,7 +65,7 @@ class Client:
async def _split_load(self, start: int, end: int, d_sock: bool, filename: str, sl: float) -> None: ...
async def _get_cid_vid(self, s: str) -> Tuple[int, int]: ...
async def _spawn_car(self, data: str) -> None: ...
async def _delete_car(self, raw_data: str) -> None: ...
async def _delete_car(self, raw_data: str = None, car_id : int =None) -> None: ...
async def _edit_car(self, raw_data: str, data: str) -> None: ...
async def _reset_car(self, raw_data: str) -> None: ...
async def _handle_car_codes(self, data: str) -> None: ...

View File

@ -56,6 +56,7 @@ class TCPServer:
client.nick = res["username"]
client.roles = res["roles"]
client._guest = res["guest"]
client._identifiers = {k: v for s in res["identifiers"] for k, v in [s.split(':')]}
# noinspection PyProtectedMember
client._update_logger()
except Exception as e: