Some fixes;

This commit is contained in:
Maxim Khomutov 2023-07-22 05:01:11 +03:00
parent b31b01d137
commit f24ae23eac

View File

@ -4,7 +4,6 @@ import os
import platform import platform
import random import random
import shutil import shutil
from threading import Thread
from lupa.lua53 import LuaRuntime from lupa.lua53 import LuaRuntime
@ -85,26 +84,26 @@ class MP:
def TriggerLocalEvent(self, event_name, *args): def TriggerLocalEvent(self, event_name, *args):
self.log.debug("request TriggerLocalEvent()") self.log.debug("request TriggerLocalEvent()")
self.log.debug(f"Calling lcoal lua event: '{event_name}'") self.log.debug(f"Calling local lua event: '{event_name}'")
funcs_data = [] funcs_data = []
if event_name in self._local_events.keys(): if event_name in self._local_events.keys():
for func in self._local_events[event_name]: for func in self._local_events[event_name]:
try: try:
funcs_data.append(func(*args)) funcs_data.append(func(*args))
except Exception as e: except Exception as e:
self.log.error(f'Error while calling "{event_name}"; In function: "{func.__name__}"') self.log.error(f'Error while calling "{event_name}"; In function: "{func}"')
self.log.exception(e) self.log.exception(e)
else: else:
self.log.warning(f"Event {event_name} does not exist, maybe ev.call_lua_event() or MP.Trigger<>Event()?. " self.log.warning(f"Event {event_name} does not exist, maybe ev.call_lua_event() or MP.Trigger<>Event()?. "
f"Just skipping it...") f"Just skipping it...")
return self._lua.table_from({i: v for i, v in enumerate(funcs_data)}) return self._lua.table_from(funcs_data)
def TriggerGlobalEvent(self, event_name, *args): def TriggerGlobalEvent(self, event_name, *args):
self.log.debug("request TriggerGlobalEvent()") self.log.debug("request TriggerGlobalEvent()")
return self._lua.table( return self._lua.table(
IsDone=lambda: True, IsDone=lambda: True,
GetResults=lambda: self._lua.table_from({i: v for i, v in enumerate(ev.call_lua_event(event_name, *args))}) GetResults=lambda: self._lua.table_from(ev.call_lua_event(event_name, *args))
) )
def SendChatMessage(self, player_id, message): def SendChatMessage(self, player_id, message):
@ -194,14 +193,13 @@ class MP:
return self._lua.table() return self._lua.table()
client = ev.call_event("_get_player", cid=player_id)[0] client = ev.call_event("_get_player", cid=player_id)[0]
if client: if client:
return self._lua.table_from( return self._lua.table_from([f'{v["json"]}' for d in [i for i in client.cars if i is not None]
{i: f'{v["json"]}' for i, d in enumerate([i for i in client.cars if i is not None]) for k, v in for k, v in d.items() if k == "json"])
d.items() if k == "json"})
def GetPlayers(self): def GetPlayers(self):
self.log.debug("request GetPlayers()") self.log.debug("request GetPlayers()")
clients = ev.call_event("_get_players", cid=-1) clients = ev.call_event("_get_players", cid=-1)
return self._lua.table_from({i: n for i, n in enumerate(clients)}) return self._lua.table_from(clients)
def IsPlayerGuest(self, player_id) -> bool: def IsPlayerGuest(self, player_id) -> bool:
self.log.debug("request IsPlayerGuest()") self.log.debug("request IsPlayerGuest()")
@ -241,9 +239,11 @@ class MP:
self.log.debug("request Set") self.log.debug("request Set")
self.log.warning("KuiToi cannot support this: MP.Set()") self.log.warning("KuiToi cannot support this: MP.Set()")
def Settings(self, *args): @property
self.log.debug("request Set") def Settings(self):
self.log.warning("KuiToi cannot support this: MP.Settings()") self.log.debug("request Settings")
self.log.warning("KuiToi cannot support this: MP.Settings")
return self._lua.table(MaxCars=1)
# noinspection PyPep8Naming # noinspection PyPep8Naming
@ -515,7 +515,7 @@ class FS:
item_path = os.path.join(path, item) item_path = os.path.join(path, item)
if os.path.isdir(item_path): if os.path.isdir(item_path):
directories.append(item) directories.append(item)
return self._lua.table_from({i: v for i, v in enumerate(directories)}) return self._lua.table_from(directories)
def ListFiles(self, path): def ListFiles(self, path):
self.log.debug("requesting ListFiles()") self.log.debug("requesting ListFiles()")
@ -524,7 +524,7 @@ class FS:
item_path = os.path.join(path, item) item_path = os.path.join(path, item)
if os.path.isfile(item_path): if os.path.isfile(item_path):
files.append(item) files.append(item)
return self._lua.table_from({i: v for i, v in enumerate(files)}) return self._lua.table_from(files)
def ConcatPaths(self, *args): def ConcatPaths(self, *args):
self.log.debug("requesting ConcatPaths()") self.log.debug("requesting ConcatPaths()")
@ -548,6 +548,8 @@ class LuaPluginsLoader:
def load(self): def load(self):
self.log.debug("Loading Lua plugins...") self.log.debug("Loading Lua plugins...")
self.log.warning("Some BeamMP plugins require a correctly configured ServerConfig.toml file to function. If "
"necessary, create it.")
py_folders = ev.call_event("_plugins_get")[0] py_folders = ev.call_event("_plugins_get")[0]
for name in os.listdir(self.plugins_dir): for name in os.listdir(self.plugins_dir):
path = os.path.join(self.plugins_dir, name) path = os.path.join(self.plugins_dir, name)