mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 08:45:37 +00:00
Update config_provider
This commit is contained in:
parent
ea2d715cae
commit
2a2d55946e
@ -90,7 +90,7 @@ class Client:
|
|||||||
return
|
return
|
||||||
# TODO: i18n
|
# TODO: i18n
|
||||||
self.log.info(f"Kicked with reason: \"{reason}\"")
|
self.log.info(f"Kicked with reason: \"{reason}\"")
|
||||||
await self._send(b"K" + bytes(reason, "utf-8"))
|
await self._send(f"K{reason}")
|
||||||
self.__alive = False
|
self.__alive = False
|
||||||
|
|
||||||
async def send_message(self, message, to_all=True):
|
async def send_message(self, message, to_all=True):
|
||||||
@ -108,7 +108,7 @@ class Client:
|
|||||||
# size data
|
# size data
|
||||||
|
|
||||||
if type(data) == str:
|
if type(data) == str:
|
||||||
data = bytes(data, "utf-8")
|
data = bytes(data, config.enc)
|
||||||
|
|
||||||
if to_all:
|
if to_all:
|
||||||
code = chr(data[0])
|
code = chr(data[0])
|
||||||
@ -266,7 +266,7 @@ class Client:
|
|||||||
while self.__alive:
|
while self.__alive:
|
||||||
data = await self._recv(True)
|
data = await self._recv(True)
|
||||||
if data.startswith(b"f"):
|
if data.startswith(b"f"):
|
||||||
file = data[1:].decode("utf-8")
|
file = data[1:].decode(config.enc)
|
||||||
# TODO: i18n
|
# TODO: i18n
|
||||||
self.log.info(f"Requested mode: {file!r}")
|
self.log.info(f"Requested mode: {file!r}")
|
||||||
size = -1
|
size = -1
|
||||||
@ -328,11 +328,11 @@ class Client:
|
|||||||
if len(mod_list) == 0:
|
if len(mod_list) == 0:
|
||||||
await self._send(b"-")
|
await self._send(b"-")
|
||||||
else:
|
else:
|
||||||
await self._send(bytes(mod_list, "utf-8"))
|
await self._send(mod_list)
|
||||||
elif data == b"Done":
|
elif data == b"Done":
|
||||||
for c in range(int(config.Game['max_cars'] * 2.3)):
|
for c in range(int(config.Game['max_cars'] * 2.3)):
|
||||||
self._cars.append(None)
|
self._cars.append(None)
|
||||||
await self._send(b"M/levels/" + bytes(config.Game['map'], 'utf-8') + b"/info.json")
|
await self._send(f"M/levels/{config.Game['map']}/info.json")
|
||||||
self.log.info(f"Syncing time: {time.monotonic() - tsr}")
|
self.log.info(f"Syncing time: {time.monotonic() - tsr}")
|
||||||
break
|
break
|
||||||
return
|
return
|
||||||
|
@ -46,17 +46,17 @@ if args.config:
|
|||||||
config_provider = ConfigProvider(config_path)
|
config_provider = ConfigProvider(config_path)
|
||||||
config = config_provider.open_config()
|
config = config_provider.open_config()
|
||||||
builtins.config = config
|
builtins.config = config
|
||||||
if config.Server['debug'] is True:
|
if config.Options['debug'] is True:
|
||||||
utils.set_debug_status()
|
utils.set_debug_status()
|
||||||
log.info("Debug enabled!")
|
log.info("Debug enabled!")
|
||||||
log = get_logger("core.init")
|
log = get_logger("core.init")
|
||||||
log.debug("Debug mode enabled!")
|
log.debug("Debug mode enabled!")
|
||||||
log.debug(f"Server config: {config}")
|
log.debug(f"Server config: {config}")
|
||||||
|
config.enc = config.Options['encoding']
|
||||||
# i18n init
|
# i18n init
|
||||||
log.debug("Initializing i18n...")
|
log.debug("Initializing i18n...")
|
||||||
ml = MultiLanguage()
|
ml = MultiLanguage()
|
||||||
ml.set_language(args.language or config.Server['language'])
|
ml.set_language(args.language or config.Options['language'])
|
||||||
ml.builtins_hook()
|
ml.builtins_hook()
|
||||||
|
|
||||||
log.debug("Initializing EventsSystem...")
|
log.debug("Initializing EventsSystem...")
|
||||||
|
@ -105,7 +105,7 @@ class Core:
|
|||||||
if not client.ready:
|
if not client.ready:
|
||||||
client.is_disconnected()
|
client.is_disconnected()
|
||||||
continue
|
continue
|
||||||
await client._send(bytes(ca, "utf-8"))
|
await client._send(ca)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log.error("Error in check_alive.")
|
self.log.error("Error in check_alive.")
|
||||||
self.log.exception(e)
|
self.log.exception(e)
|
||||||
|
@ -33,11 +33,15 @@ if os.path.exists(log_file):
|
|||||||
if os.path.exists(file):
|
if os.path.exists(file):
|
||||||
tar.add(file, os.path.basename(file))
|
tar.add(file, os.path.basename(file))
|
||||||
os.remove(file)
|
os.remove(file)
|
||||||
fh = logging.FileHandler(log_file, encoding='utf-8')
|
fh = logging.FileHandler(log_file, encoding="utf-8")
|
||||||
fh.setFormatter(logging.Formatter(log_format))
|
fh.setFormatter(logging.Formatter(log_format))
|
||||||
|
|
||||||
|
|
||||||
def get_logger(name):
|
def get_logger(name):
|
||||||
|
try:
|
||||||
|
fh.encoding = config.enc
|
||||||
|
except NameError:
|
||||||
|
fh.encoding = "utf-8"
|
||||||
log = logging.getLogger(name=name)
|
log = logging.getLogger(name=name)
|
||||||
log.addHandler(fh)
|
log.addHandler(fh)
|
||||||
log.level = log_level
|
log.level = log_level
|
||||||
|
@ -1,8 +1,17 @@
|
|||||||
|
import secrets
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
Auth: dict
|
def __init__(self, auth=None, game=None, server=None, options=None, web=None):
|
||||||
Game: dict
|
self.Auth = auth or {"key": None, "private": True}
|
||||||
Server: dict
|
self.Game = game or {"map": "gridmap_v2", "players": 8, "max_cars": 1}
|
||||||
WebAPI: dict
|
self.Server = server or {"name": "KuiToi-Server", "description": "Welcome to KuiToi Server!",
|
||||||
|
"server_ip": "0.0.0.0", "server_port": 30814}
|
||||||
|
self.Options = options or {"language": "en", "encoding": "utf8", "speed_limit": 0, "use_queue": False,
|
||||||
|
"debug": False}
|
||||||
|
self.WebAPI = web or {"enabled": False, "server_ip": "127.0.0.1", "server_port": 8433,
|
||||||
|
"secret_key": secrets.token_hex(16)}
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%s(Auth=%r, Game=%r, Server=%r)" % (self.__class__.__name__, self.Auth, self.Game, self.Server)
|
return "%s(Auth=%r, Game=%r, Server=%r)" % (self.__class__.__name__, self.Auth, self.Game, self.Server)
|
||||||
class config (Config): ...
|
class config (Config): ...
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Developed by KuiToi Dev
|
# Developed by KuiToi Dev
|
||||||
# File modules.config_provider.config_provider.py
|
# File modules.config_provider.config_provider.py
|
||||||
# Written by: SantaSpeen
|
# Written by: SantaSpeen
|
||||||
# Version 1.0
|
# Version 1.1
|
||||||
# Licence: FPA
|
# Licence: FPA
|
||||||
# (c) kuitoi.su 2023
|
# (c) kuitoi.su 2023
|
||||||
import os
|
import os
|
||||||
@ -11,13 +10,14 @@ import secrets
|
|||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
def __init__(self, auth=None, game=None, server=None, web=None):
|
def __init__(self, auth=None, game=None, server=None, options=None, web=None):
|
||||||
self.Auth = auth or {"key": None, "private": True}
|
self.Auth = auth or {"key": None, "private": True}
|
||||||
self.Game = game or {"map": "gridmap_v2", "players": 8, "max_cars": 1}
|
self.Game = game or {"map": "gridmap_v2", "players": 8, "max_cars": 1}
|
||||||
self.Server = server or {"name": "KuiToi-Server", "description": "Welcome to KuiToi Server!", "language": "en",
|
self.Server = server or {"name": "KuiToi-Server", "description": "Welcome to KuiToi Server!",
|
||||||
"server_ip": "0.0.0.0", "server_port": 30814, "debug": False}
|
"server_ip": "0.0.0.0", "server_port": 30814}
|
||||||
|
self.Options = options or {"language": "en", "encoding": "utf-8", "speed_limit": 0, "use_queue": False,
|
||||||
|
"debug": False}
|
||||||
self.WebAPI = web or {"enabled": False, "server_ip": "127.0.0.1", "server_port": 8433,
|
self.WebAPI = web or {"enabled": False, "server_ip": "127.0.0.1", "server_port": 8433,
|
||||||
"secret_key": secrets.token_hex(16)}
|
"secret_key": secrets.token_hex(16)}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ class PluginsLoader:
|
|||||||
plugin.print = print
|
plugin.print = print
|
||||||
file_path = os.path.join(self.plugins_dir, file)
|
file_path = os.path.join(self.plugins_dir, file)
|
||||||
plugin.__file__ = file_path
|
plugin.__file__ = file_path
|
||||||
with open(f'{file_path}', 'r', encoding="utf-8") as f:
|
with open(f'{file_path}', 'r', encoding=config.enc) as f:
|
||||||
code = f.read()
|
code = f.read()
|
||||||
exec(code, plugin.__dict__)
|
exec(code, plugin.__dict__)
|
||||||
|
|
||||||
|
@ -68,7 +68,9 @@ class i18n:
|
|||||||
|
|
||||||
class MultiLanguage:
|
class MultiLanguage:
|
||||||
|
|
||||||
def __init__(self, language: str = None, files_dir="modules/i18n/files/", encoding="utf-8"):
|
def __init__(self, language: str = None, files_dir="modules/i18n/files/", encoding=None):
|
||||||
|
if encoding is None:
|
||||||
|
encoding = config.enc
|
||||||
if language is None:
|
if language is None:
|
||||||
language = "en"
|
language = "en"
|
||||||
self.__data = {}
|
self.__data = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user