mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2026-04-23 00:30:26 +00:00
"Core" move to dir
This commit is contained in:
54
src/core/__init__.py
Normal file
54
src/core/__init__.py
Normal file
@@ -0,0 +1,54 @@
|
||||
# Developed by KuiToi Dev
|
||||
# File core.__init__.py
|
||||
# Written by: SantaSpeen
|
||||
# Version 0.1.0
|
||||
# Licence: FPA
|
||||
# (c) kuitoi.su 2023
|
||||
|
||||
__title__ = 'KuiToi-Server'
|
||||
__description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.'
|
||||
__url__ = 'https://github.com/kuitoi/kuitoi-Server'
|
||||
__version__ = '0.1.0'
|
||||
__build__ = 36
|
||||
__author__ = 'SantaSpeen'
|
||||
__author_email__ = 'admin@kuitoi.su'
|
||||
__license__ = "FPA"
|
||||
__copyright__ = 'Copyright 2023 © SantaSpeen (Maxim Khomutov)'
|
||||
|
||||
import asyncio
|
||||
|
||||
from core import utils
|
||||
from core.config_provider import ConfigProvider
|
||||
from main import parser
|
||||
from modules import Console
|
||||
from core.core import start
|
||||
from core.core import stop
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
console = Console(prompt_out=":")
|
||||
log = utils.get_logger("init")
|
||||
|
||||
log.info("Hello from KuiToi-Server!")
|
||||
args = parser.parse_args()
|
||||
if args.version:
|
||||
print(f"KuiToi-Server:\n\tVersion: {__version__}\n\tBuild: {__build__}")
|
||||
exit(0)
|
||||
|
||||
config_path = "kuitoi.yml"
|
||||
if args.config:
|
||||
config_path = args.config
|
||||
log.info(f"Use {config_path} for config.")
|
||||
|
||||
config_provider = ConfigProvider(config_path)
|
||||
config = config_provider.open_config()
|
||||
if config.Server['debug'] is True:
|
||||
utils.set_debug_status()
|
||||
log.info("Getting new loggen with DEBUG level!")
|
||||
log = utils.get_logger("main")
|
||||
log.debug("Debug mode enabled!")
|
||||
log.debug(f"Server config: {config}")
|
||||
console.builtins_hook()
|
||||
console.logger_hook()
|
||||
|
||||
log.info("Initializing ready.")
|
||||
44
src/core/config_provider.py
Normal file
44
src/core/config_provider.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Developed by KuiToi Dev
|
||||
# File core.config_provider.py
|
||||
# Written by: SantaSpeen
|
||||
# Version 1.0
|
||||
# Licence: FPA
|
||||
# (c) kuitoi.su 2023
|
||||
import os
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
class Config:
|
||||
def __init__(self, auth=None, game=None, server=None):
|
||||
self.Auth = auth or {"key": None, "private": True}
|
||||
self.Game = game or {"map": "gridmap_v2", "players": 8, "max_cars": 1}
|
||||
self.Server = server or {"name": "KuiToi-Server",
|
||||
"description": "This server uses KuiToi!",
|
||||
"port": 30814, "server_ip": "0.0.0.0", "debug": False}
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(Auth=%r, Game=%r, Server=%r)" % (self.__class__.__name__, self.Auth, self.Game, self.Server)
|
||||
|
||||
|
||||
class ConfigProvider:
|
||||
|
||||
def __init__(self, config_patch):
|
||||
self.config_patch = config_patch
|
||||
self.config = Config()
|
||||
|
||||
def open_config(self):
|
||||
if not os.path.exists(self.config_patch):
|
||||
with open(self.config_patch, "w", encoding="utf-8") as f:
|
||||
yaml.dump(self.config, f)
|
||||
try:
|
||||
with open(self.config_patch, "r", encoding="utf-8") as f:
|
||||
self.config = yaml.load(f.read(), yaml.Loader)
|
||||
except yaml.YAMLError:
|
||||
print("You have errors in the YAML syntax.")
|
||||
print("Stopping server.")
|
||||
exit(1)
|
||||
|
||||
return self.config
|
||||
21
src/core/core.py
Normal file
21
src/core/core.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Developed by KuiToi Dev
|
||||
# File core.core.py
|
||||
# Written by: SantaSpeen
|
||||
# Version 0.1.0
|
||||
# Licence: FPA
|
||||
# (c) kuitoi.su 2023
|
||||
import asyncio
|
||||
|
||||
from core import utils
|
||||
|
||||
log = utils.get_logger("core")
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
|
||||
def start():
|
||||
log.info("Start!")
|
||||
|
||||
|
||||
def stop():
|
||||
log.info("Goodbye!")
|
||||
3
src/core/errors.py
Normal file
3
src/core/errors.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
class BadConfigError(Exception): ...
|
||||
33
src/core/utils.py
Normal file
33
src/core/utils.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# Developed by KuiToi Dev
|
||||
# File core.utils.py
|
||||
# Written by: SantaSpeen
|
||||
# Version 0.1.0
|
||||
# Licence: FPA
|
||||
# (c) kuitoi.su 2023
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
log_format = "[%(asctime)s | %(name)s | %(levelname)-5s] %(message)s"
|
||||
log_file = "server.log"
|
||||
log_level = logging.INFO
|
||||
# Инициализируем логирование
|
||||
logging.basicConfig(level=log_level, format=log_format)
|
||||
# Настройка логирование в файл.
|
||||
if os.path.exists(log_file):
|
||||
os.remove(log_file)
|
||||
fh = logging.FileHandler(log_file)
|
||||
fh.setFormatter(logging.Formatter(log_format))
|
||||
|
||||
|
||||
def get_logger(name):
|
||||
log = logging.getLogger(name=name)
|
||||
log.addHandler(fh)
|
||||
log.level = log_level
|
||||
log.handlers[0].level = log_level
|
||||
return log
|
||||
|
||||
|
||||
def set_debug_status():
|
||||
global log_level
|
||||
log_level = 10
|
||||
Reference in New Issue
Block a user