diff --git a/src/core/core.py b/src/core/core.py index 2e574ac..4d40439 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -46,7 +46,8 @@ class Core: self.client_major_version = "2.0" self.BeamMP_version = "3.1.1" # 20.07.2023 - ev.register_event("get_player", self.get_client) + ev.register_event("_get_BeamMP_version", lambda x: tuple([int(i) for i in self.BeamMP_version.split(".")])) + ev.register_event("_get_player", self.get_client) def get_client(self, cid=None, nick=None, from_ev=None): if from_ev is not None: diff --git a/src/modules/PluginsLoader/add_in.lua b/src/modules/PluginsLoader/add_in.lua new file mode 100644 index 0000000..62ebc79 --- /dev/null +++ b/src/modules/PluginsLoader/add_in.lua @@ -0,0 +1,4 @@ +function MP:GetServerVersion() + ver = MP:_GetServerVersion() + return ver[0], ver[1], ver[2] +end diff --git a/src/modules/PluginsLoader/lua_plugins_loader.py b/src/modules/PluginsLoader/lua_plugins_loader.py index 7c03265..c9dca30 100644 --- a/src/modules/PluginsLoader/lua_plugins_loader.py +++ b/src/modules/PluginsLoader/lua_plugins_loader.py @@ -1,5 +1,7 @@ import asyncio import os +import platform +from typing import Tuple, List, Any # noinspection PyUnresolvedReferences import lupa.lua53 @@ -8,18 +10,28 @@ from lupa.lua53 import LuaRuntime from core import get_logger +# noinspection PyPep8Naming class MP: def __init__(self, name): self.name = name self.log = get_logger(f"LuaPlugin | {name}") - def log_info(self, *args): + def _print_log(self, *args): s = "" for i in args: - s += i + s += f" {i}" self.log.info(s) + def CreateTimer(self): ... + + def GetOSName(self) -> str: + return platform.system() + + def _GetServerVersion(self) -> tuple[int, int, int]: + major, minor, patch = ev.call_event("_get_BeamMP_version")[0] + return major, minor, patch + class LuaPluginsLoader: @@ -48,14 +60,19 @@ class LuaPluginsLoader: self.log.debug(f"py_folders {py_folders}, lua_dirs {self.lua_dirs}") for path, obj in self.lua_dirs: + # noinspection PyArgumentList lua = LuaRuntime(encoding=config.enc, source_encoding=config.enc) mp = MP(obj) lua.globals().MP = mp - lua.globals().print = mp.log_info + lua.globals().printRaw = lua.globals().print + lua.globals().print = mp._print_log + lua.globals().exit = lambda x: self.log.info(f"{obj}: You can't disable server..") code = f'package.path = package.path.."' \ f';{self.plugins_dir}/{obj}/?.lua' \ f';{self.plugins_dir}/{obj}/lua/?.lua' \ - f';modules/PluginsLoader/lua_libs/?.lua"' + f';modules/PluginsLoader/lua_libs/?.lua"\n' + with open("modules/PluginsLoader/add_in.lua", "r") as f: + code += f.read() with open(os.path.join(path, "main.lua"), 'r', encoding=config.enc) as f: code += f.read() lua.execute(code)