Add _synced #1

This commit is contained in:
Maxim Khomutov 2023-08-17 21:25:47 +03:00
parent 42e4a8e05e
commit a06c48dca5
3 changed files with 10 additions and 1 deletions

View File

@ -32,6 +32,7 @@ class Client:
self.nick = None self.nick = None
self.roles = None self.roles = None
self._guest = True self._guest = True
self._synced = False
self._ready = False self._ready = False
self._identifiers = [] self._identifiers = []
self._cars = [None] * 21 # Max 20 cars per player + 1 snowman self._cars = [None] * 21 # Max 20 cars per player + 1 snowman
@ -72,6 +73,10 @@ class Client:
def guest(self): def guest(self):
return self._guest return self._guest
@property
def synced(self):
return self._synced
@property @property
def ready(self): def ready(self):
return self._ready return self._ready
@ -706,6 +711,7 @@ class Client:
tasks = self.__tasks tasks = self.__tasks
recv = asyncio.create_task(self._recv()) recv = asyncio.create_task(self._recv())
tasks.append(recv) tasks.append(recv)
self._synced = True
while self.__alive: while self.__alive:
if len(self.__packets_queue) > 0: if len(self.__packets_queue) > 0:
for index, packet in enumerate(self.__packets_queue): for index, packet in enumerate(self.__packets_queue):

View File

@ -32,6 +32,7 @@ class Client:
self.roles: str = None self.roles: str = None
self._guest = True self._guest = True
self.__alive = True self.__alive = True
self._synced = False
self._ready = False self._ready = False
self._focus_car = -1 self._focus_car = -1
self._identifiers = [] self._identifiers = []
@ -55,6 +56,8 @@ class Client:
@property @property
def guest(self) -> bool: ... def guest(self) -> bool: ...
@property @property
def synced(self) -> bool: ...
@property
def ready(self) -> bool: ... def ready(self) -> bool: ...
@property @property
def identifiers(self) -> list: ... def identifiers(self) -> list: ...

View File

@ -57,7 +57,7 @@ class Core:
return None return None
if cid is not None: if cid is not None:
if cid == -1: if cid == -1:
return [i for i in self.clients if i is not None] return [i for i in self.clients if i is not None and i.synced]
return self.clients_by_id.get(cid) return self.clients_by_id.get(cid)
if nick: if nick:
return self.clients_by_nick.get(nick) return self.clients_by_nick.get(nick)