diff --git a/src/core/Client.py b/src/core/Client.py index baca9b3..b2390c9 100644 --- a/src/core/Client.py +++ b/src/core/Client.py @@ -133,10 +133,9 @@ class Client: await self._send(f"C:{message}", to_all=to_all) async def send_event(self, event_name, event_data, to_all=True): + self.log.debug(f"send_event: {event_name}:{event_data}; {to_all=}") if isinstance(event_data, (list, tuple, dict)): event_data = json.dumps(event_data, separators=(',', ':')) - else: - event_data = f"{event_data!r}" if len(event_data) > 104857599: self.log.error("Client data too big! >=104857599") return diff --git a/src/core/__init__.py b/src/core/__init__.py index 23bc8e4..aa4eb90 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.8 (pre)' -__build__ = 2474 # Я это считаю лог файлами +__build__ = 2483 # Я это считаю лог файлами __author__ = 'SantaSpeen' __author_email__ = 'admin@kuitoi.su' __license__ = "FPA" @@ -91,7 +91,7 @@ if not config.Auth['private'] and not config.Auth['key']: text=i18n.GUI_enter_key_message, ok_text=i18n.GUI_ok, cancel_text=i18n.GUI_cancel).run() -config_provider.save() + config_provider.save() if not config.Auth['private'] and not config.Auth['key']: log.error(i18n.auth_empty_key) log.info(i18n.stop) diff --git a/src/core/core.py b/src/core/core.py index 885edd4..3d84d14 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -315,7 +315,7 @@ class Core: await ev.call_async_event("onServerStopped") await self.__gracefully_kick() if config.Options['use_lua']: - ev.call_event("_lua_plugins_unload") + await ev.call_async_event("_lua_plugins_unload") await ev.call_async_event("_plugins_unload") self.run = False total_time = time.monotonic() - self.start_time diff --git a/src/modules/PluginsLoader/__init__.py b/src/modules/PluginsLoader/__init__.py index ff7c61a..f3670bc 100644 --- a/src/modules/PluginsLoader/__init__.py +++ b/src/modules/PluginsLoader/__init__.py @@ -23,13 +23,12 @@ class KuiToi: _plugins_dir = "" def __init__(self, name): - if name is None: + if not name: raise AttributeError("KuiToi: Name is required") self.__log = get_logger(f"Plugin | {name}") self.__name = name self.__dir = Path(self._plugins_dir) / self.__name - if not self.__dir.exists(): - os.mkdir(self.__dir) + os.makedirs(self.__dir, exist_ok=True) @property def log(self): diff --git a/src/modules/PluginsLoader/lua_plugins_loader.py b/src/modules/PluginsLoader/lua_plugins_loader.py index 4508f22..50c80fa 100644 --- a/src/modules/PluginsLoader/lua_plugins_loader.py +++ b/src/modules/PluginsLoader/lua_plugins_loader.py @@ -608,14 +608,6 @@ class LuaPluginsLoader: "ImScaredOfUpdates": False, "SendErrorsShowMessage": False, "SendErrors": False - }, - "HTTP": { - "HTTPServerIP": config.WebAPI['server_ip'], - "HTTPServerPort": config.WebAPI['server_port'], - "SSLKeyPath": None, - "SSLCertPath": None, - "UseSSL": False, - "HTTPServerEnabled": config.WebAPI['enabled'], } } with open("ServerConfig.toml", "w") as f: @@ -671,10 +663,15 @@ class LuaPluginsLoader: self.log.error(f"Exception onInit from `{name}`: {e}") self.log.exception(e) - def unload(self, _): + async def unload(self, _): self.log.debug("Unloading lua plugins") for name, data in self.lua_plugins.items(): if data['ok']: self.log.info(i18n.plugins_lua_unload.format(name)) - for _, timer in data['lua'].globals().MP._event_timers.items(): + MP = data['lua'].globals().MP + self.log.debug("gather") + await asyncio.gather(*MP.tasks) + self.log.debug("timers") + for _, timer in MP._event_timers.items(): timer.stop() + self.log.debug("unloaded")