diff --git a/src/core/Client.py b/src/core/Client.py index 4a6988f..d36a824 100644 --- a/src/core/Client.py +++ b/src/core/Client.py @@ -521,10 +521,11 @@ class Client: self.log.debug(f"Invalid car: car_id={car_id}") async def reset_car(self, car_id, x, y, z, rot=None): - # TODO: reset_car self.log.debug(f"Resetting car from plugin") - if rot is None: - rot = {"y": 0, "w": 0, "x": 0, "z": 0} + jpkt = {"rot": {"y": 0, "w": 0, "x": 0, "z": 0}, "pos": {"y": int(y), "x": int(x), "z": int(z)}} + if rot: + jpkt['rot'] = rot + await self._send(f"Or:{self.cid}-{car_id}:{json.dumps(jpkt)}", True) async def _reset_car(self, raw_data): cid, car_id = self._get_cid_vid(raw_data) @@ -545,6 +546,7 @@ class Client: async def _handle_car_codes(self, raw_data): if len(raw_data) < 6: return + self.log.debug(f"[car] {raw_data}") sub_code = raw_data[1] data = raw_data[3:] match sub_code: @@ -602,6 +604,8 @@ class Client: self.log.info(i18n.client_sync_time.format(round(time.monotonic() - self._connect_time, 2))) self._ready = True + ev.call_event("onPlayerReady", player=self) + await ev.call_async_event("onPlayerReady", player=self) async def _chat_handler(self, data): sup = data.find(":", 2) diff --git a/src/core/__init__.py b/src/core/__init__.py index 217969b..a0b36ba 100644 --- a/src/core/__init__.py +++ b/src/core/__init__.py @@ -10,7 +10,7 @@ __title__ = 'KuiToi-Server' __description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.' __url__ = 'https://github.com/kuitoi/kuitoi-Server' __version__ = '0.4.6' -__build__ = 2425 # Я это считаю лог файлами +__build__ = 2437 # Я это считаю лог файлами __author__ = 'SantaSpeen' __author_email__ = 'admin@kuitoi.su' __license__ = "FPA" diff --git a/src/core/core.py b/src/core/core.py index d189234..388d133 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -179,7 +179,7 @@ class Core: "port": config.Server["server_port"], "map": _map, "private": config.Auth['private'], - "version": f"KuiToi-{self.BeamMP_version}", + "version": self.BeamMP_version, "clientversion": self.client_major_version, "name": config.Server["name"], "tags": tags, diff --git a/src/modules/EventsSystem/__init__.py b/src/modules/EventsSystem/__init__.py index 2cd835b..c9fdf95 100644 --- a/src/modules/EventsSystem/__init__.py +++ b/src/modules/EventsSystem/__init__.py @@ -26,6 +26,7 @@ class EventsSystem: "onPlayerSentKey": [], # Only sync, no handler "onPlayerAuthenticated": [], # (!) Only sync, With handler "onPlayerJoin": [], # (!) With handler + "onPlayerReady": [], # No handler "onChatReceive": [], # (!) With handler "onCarSpawn": [], # (!) With handler "onCarDelete": [], # (!) With handler (admin allow) @@ -41,6 +42,7 @@ class EventsSystem: self.__async_events = { "onServerStarted": [], "onPlayerJoin": [], + "onPlayerReady": [], "onChatReceive": [], "onCarSpawn": [], "onCarDelete": [],