mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 08:45:37 +00:00
New print (Now print tables as json);
Fix _recursive_dict_encode; Fix lua.globals().onInit();
This commit is contained in:
parent
1b5ddbdd45
commit
d7073d9124
@ -6,7 +6,7 @@ import random
|
|||||||
import shutil
|
import shutil
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
from lupa.lua53 import LuaRuntime
|
from lupa.lua54 import LuaRuntime
|
||||||
|
|
||||||
from core import get_logger
|
from core import get_logger
|
||||||
|
|
||||||
@ -31,6 +31,10 @@ class MP:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def _print(self, *args):
|
def _print(self, *args):
|
||||||
|
args = list(args)
|
||||||
|
for i, arg in enumerate(args):
|
||||||
|
if "LuaTable" in str(type(arg)):
|
||||||
|
args[i] = self._lua.globals().Util.JsonEncode(arg)
|
||||||
s = " ".join(map(str, args))
|
s = " ".join(map(str, args))
|
||||||
self.log.info(s)
|
self.log.info(s)
|
||||||
|
|
||||||
@ -240,18 +244,19 @@ class Util:
|
|||||||
return [i for i in new_list if i is not None]
|
return [i for i in new_list if i is not None]
|
||||||
|
|
||||||
def _recursive_dict_encode(self, table):
|
def _recursive_dict_encode(self, table):
|
||||||
|
new_dict = dict(table)
|
||||||
for k, v in table.items():
|
for k, v in table.items():
|
||||||
if not isinstance(v, (int, float, bool, str, dict, list)) and "LuaTable" not in str(type(v)):
|
if not isinstance(v, (int, float, bool, str, dict, list)) and "LuaTable" not in str(type(v)):
|
||||||
table[k] = None
|
new_dict[k] = None
|
||||||
continue
|
continue
|
||||||
if "LuaTable" in str(type(v)):
|
if "LuaTable" in str(type(v)):
|
||||||
d = dict(v)
|
d = dict(v)
|
||||||
if all(isinstance(i, int) for i in d.keys()):
|
if all(isinstance(i, int) for i in d.keys()):
|
||||||
table[k] = self._recursive_list_encode(d)
|
new_dict[k] = self._recursive_list_encode(d)
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
table[k] = self._recursive_dict_encode(d)
|
new_dict[k] = self._recursive_dict_encode(d)
|
||||||
return {k: v for k, v in dict(table).items() if v is not None}
|
return {k: v for k, v in new_dict.items() if v is not None}
|
||||||
|
|
||||||
def JsonEncode(self, table):
|
def JsonEncode(self, table):
|
||||||
self.log.debug("requesting JsonEncode()")
|
self.log.debug("requesting JsonEncode()")
|
||||||
@ -516,10 +521,10 @@ class LuaPluginsLoader:
|
|||||||
|
|
||||||
def _start(self, obj, lua, file):
|
def _start(self, obj, lua, file):
|
||||||
try:
|
try:
|
||||||
f = lua.globals().loadfile(os.path.abspath(f"plugins/{obj}/{file}"))
|
lua.globals().loadfile(f"plugins/{obj}/{file}")()
|
||||||
f()
|
|
||||||
self.lua_plugins[obj]['ok'] = True
|
self.lua_plugins[obj]['ok'] = True
|
||||||
self.loaded_str += f"{obj}:ok, "
|
self.loaded_str += f"{obj}:ok, "
|
||||||
|
lua.globals().onInit()
|
||||||
lua.globals().MP.TriggerLocalEvent("onInit")
|
lua.globals().MP.TriggerLocalEvent("onInit")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.loaded_str += f"{obj}:no, "
|
self.loaded_str += f"{obj}:no, "
|
||||||
@ -540,17 +545,18 @@ class LuaPluginsLoader:
|
|||||||
for path, obj in self.lua_dirs:
|
for path, obj in self.lua_dirs:
|
||||||
# noinspection PyArgumentList
|
# noinspection PyArgumentList
|
||||||
lua = LuaRuntime(encoding=config.enc, source_encoding=config.enc, unpack_returned_tuples=True)
|
lua = LuaRuntime(encoding=config.enc, source_encoding=config.enc, unpack_returned_tuples=True)
|
||||||
lua.globals().printRaw = lua.globals().print
|
lua_globals = lua.globals()
|
||||||
lua.globals().exit = lambda x: self.log.info(f"{obj}: You can't disable server..")
|
lua_globals.printRaw = lua.globals().print
|
||||||
|
lua_globals.exit = lambda x: self.log.info(f"{obj}: You can't disable server..")
|
||||||
mp = MP(obj, lua)
|
mp = MP(obj, lua)
|
||||||
lua.globals().MP = mp
|
lua_globals.MP = mp
|
||||||
lua.globals().print = mp._print
|
lua_globals.print = mp._print
|
||||||
lua.globals().Util = Util(obj, lua)
|
lua_globals.Util = Util(obj, lua)
|
||||||
lua.globals().FP = FP(obj, lua)
|
lua_globals.FP = FP(obj, lua)
|
||||||
pa = os.path.abspath(self.plugins_dir)
|
pa = os.path.abspath(self.plugins_dir)
|
||||||
p0 = os.path.join(pa, obj, "?.lua")
|
p0 = os.path.join(pa, obj, "?.lua")
|
||||||
p1 = os.path.join(pa, obj, "lua", "?.lua")
|
p1 = os.path.join(pa, obj, "lua", "?.lua")
|
||||||
lua.globals().package.path += f';{p0};{p1}'
|
lua_globals.package.path += f';{p0};{p1}'
|
||||||
# with open("modules/PluginsLoader/add_in.lua", "r") as f:
|
# with open("modules/PluginsLoader/add_in.lua", "r") as f:
|
||||||
# code += f.read()
|
# code += f.read()
|
||||||
self.lua_plugins.update({obj: {"mp": mp, "lua": lua, "thread": None, "ok": False}})
|
self.lua_plugins.update({obj: {"mp": mp, "lua": lua, "thread": None, "ok": False}})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user