mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-18 08:45:37 +00:00
"Core" move to dir
This commit is contained in:
parent
3639ec9371
commit
b487c13bd3
1
.gitignore
vendored
1
.gitignore
vendored
@ -129,3 +129,4 @@ dmypy.json
|
|||||||
.pyre/
|
.pyre/
|
||||||
.idea/
|
.idea/
|
||||||
/src/kuitoi.yml
|
/src/kuitoi.yml
|
||||||
|
.cmdhistory
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
__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__ = 'SantaSpeen@gmail.com'
|
|
||||||
__license__ = "FPA"
|
|
||||||
__copyright__ = 'Copyright 2022 © SantaSpeen (Maxim Khomutov)'
|
|
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.")
|
@ -1,17 +1,23 @@
|
|||||||
|
# -*- 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 os
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import errors
|
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
def __init__(self, auth=None, game=None, server=None):
|
def __init__(self, auth=None, game=None, server=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",
|
self.Server = server or {"name": "KuiToi-Server",
|
||||||
"description": "The best description",
|
"description": "This server uses KuiToi!",
|
||||||
"port": 30814, "custom_ip": None, "debug": False}
|
"port": 30814, "server_ip": "0.0.0.0", "debug": False}
|
||||||
|
|
||||||
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)
|
||||||
@ -31,6 +37,8 @@ class ConfigProvider:
|
|||||||
with open(self.config_patch, "r", encoding="utf-8") as f:
|
with open(self.config_patch, "r", encoding="utf-8") as f:
|
||||||
self.config = yaml.load(f.read(), yaml.Loader)
|
self.config = yaml.load(f.read(), yaml.Loader)
|
||||||
except yaml.YAMLError:
|
except yaml.YAMLError:
|
||||||
raise errors.BadConfigError("Your config file can't open as YAML.")
|
print("You have errors in the YAML syntax.")
|
||||||
|
print("Stopping server.")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
return self.config
|
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): ...
|
@ -1,3 +1,10 @@
|
|||||||
|
# Developed by KuiToi Dev
|
||||||
|
# File core.utils.py
|
||||||
|
# Written by: SantaSpeen
|
||||||
|
# Version 0.1.0
|
||||||
|
# Licence: FPA
|
||||||
|
# (c) kuitoi.su 2023
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
class BadConfigError(Exception):
|
|
||||||
...
|
|
65
src/main.py
65
src/main.py
@ -1,17 +1,16 @@
|
|||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Developed by KuiToi Dev
|
||||||
|
# File main.py
|
||||||
|
# Written by: SantaSpeen
|
||||||
|
# Version 0.1.0
|
||||||
|
# Licence: FPA
|
||||||
|
# (c) kuitoi.su 2023
|
||||||
import argparse
|
import argparse
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
try:
|
from core import utils
|
||||||
from modules.console.src.console import Console, ConsoleIO
|
|
||||||
except ImportError:
|
|
||||||
Console, ConsoleIO = None, None
|
|
||||||
print("Clone with submodules!")
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
import __version__
|
|
||||||
import config_provider
|
|
||||||
import utils
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='KuiToi-Server - BeamingDrive server compatible with BeamMP clients!')
|
parser = argparse.ArgumentParser(description='KuiToi-Server - BeamingDrive server compatible with BeamMP clients!')
|
||||||
parser.add_argument('-v', '--version', action="store_true", help='Print version and exit.', default=False)
|
parser.add_argument('-v', '--version', action="store_true", help='Print version and exit.', default=False)
|
||||||
@ -19,50 +18,12 @@ parser.add_argument('--config', help='Patch to config file.', nargs='?', default
|
|||||||
log = utils.get_logger("main")
|
log = utils.get_logger("main")
|
||||||
loop = asyncio.new_event_loop()
|
loop = asyncio.new_event_loop()
|
||||||
asyncio.set_event_loop(loop)
|
asyncio.set_event_loop(loop)
|
||||||
console = Console(prompt_out=":", async_loop=loop)
|
|
||||||
|
|
||||||
|
|
||||||
def init():
|
|
||||||
global log
|
|
||||||
log.info("Hello from KuiToi-Server!")
|
|
||||||
args = parser.parse_args()
|
|
||||||
if args.version:
|
|
||||||
print(f"KuiToi-Server:\n\tVersion: {__version__.__version__}\n\tBuild: {__version__.__build__}")
|
|
||||||
exit(0)
|
|
||||||
|
|
||||||
config_patch = "kuitoi.yml"
|
|
||||||
if args.config:
|
|
||||||
config_patch = args.config
|
|
||||||
log.info(f"Use {config_patch} for config.")
|
|
||||||
|
|
||||||
cp = config_provider.ConfigProvider(config_patch)
|
|
||||||
config = cp.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()
|
|
||||||
|
|
||||||
|
|
||||||
def start():
|
|
||||||
tasks = [
|
|
||||||
loop.create_task(console.async_run()),
|
|
||||||
]
|
|
||||||
|
|
||||||
loop.run_until_complete(asyncio.wait(tasks))
|
|
||||||
|
|
||||||
|
|
||||||
def end():
|
|
||||||
log.info("Goodbye!")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init()
|
import core
|
||||||
|
|
||||||
try:
|
try:
|
||||||
start()
|
core.start()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("Exiting..")
|
print("Exiting..")
|
||||||
end()
|
core.stop()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user