mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 08:15:42 +00:00
Add Lua API: GetOSName, GetServerVersion
This commit is contained in:
parent
b80d519c8d
commit
c8fea133ba
@ -46,7 +46,8 @@ class Core:
|
|||||||
self.client_major_version = "2.0"
|
self.client_major_version = "2.0"
|
||||||
self.BeamMP_version = "3.1.1" # 20.07.2023
|
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):
|
def get_client(self, cid=None, nick=None, from_ev=None):
|
||||||
if from_ev is not None:
|
if from_ev is not None:
|
||||||
|
4
src/modules/PluginsLoader/add_in.lua
Normal file
4
src/modules/PluginsLoader/add_in.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
function MP:GetServerVersion()
|
||||||
|
ver = MP:_GetServerVersion()
|
||||||
|
return ver[0], ver[1], ver[2]
|
||||||
|
end
|
@ -1,5 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
|
import platform
|
||||||
|
from typing import Tuple, List, Any
|
||||||
|
|
||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
import lupa.lua53
|
import lupa.lua53
|
||||||
@ -8,18 +10,28 @@ from lupa.lua53 import LuaRuntime
|
|||||||
from core import get_logger
|
from core import get_logger
|
||||||
|
|
||||||
|
|
||||||
|
# noinspection PyPep8Naming
|
||||||
class MP:
|
class MP:
|
||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.log = get_logger(f"LuaPlugin | {name}")
|
self.log = get_logger(f"LuaPlugin | {name}")
|
||||||
|
|
||||||
def log_info(self, *args):
|
def _print_log(self, *args):
|
||||||
s = ""
|
s = ""
|
||||||
for i in args:
|
for i in args:
|
||||||
s += i
|
s += f" {i}"
|
||||||
self.log.info(s)
|
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:
|
class LuaPluginsLoader:
|
||||||
|
|
||||||
@ -48,14 +60,19 @@ class LuaPluginsLoader:
|
|||||||
self.log.debug(f"py_folders {py_folders}, lua_dirs {self.lua_dirs}")
|
self.log.debug(f"py_folders {py_folders}, lua_dirs {self.lua_dirs}")
|
||||||
|
|
||||||
for path, obj in self.lua_dirs:
|
for path, obj in self.lua_dirs:
|
||||||
|
# noinspection PyArgumentList
|
||||||
lua = LuaRuntime(encoding=config.enc, source_encoding=config.enc)
|
lua = LuaRuntime(encoding=config.enc, source_encoding=config.enc)
|
||||||
mp = MP(obj)
|
mp = MP(obj)
|
||||||
lua.globals().MP = mp
|
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.."' \
|
code = f'package.path = package.path.."' \
|
||||||
f';{self.plugins_dir}/{obj}/?.lua' \
|
f';{self.plugins_dir}/{obj}/?.lua' \
|
||||||
f';{self.plugins_dir}/{obj}/lua/?.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:
|
with open(os.path.join(path, "main.lua"), 'r', encoding=config.enc) as f:
|
||||||
code += f.read()
|
code += f.read()
|
||||||
lua.execute(code)
|
lua.execute(code)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user