Files
neonsr/utils/config.py
Naruse ec8972d5d6 init
2025-04-15 19:36:05 +08:00

43 lines
1.0 KiB
Python

from dataclasses import asdict, dataclass
import os
import json
from dacite import from_dict
@dataclass
class ServerConfig:
IP: str
Port: int
@dataclass
class ConfigData:
LogLevel: str
GameServer: ServerConfig
SDKServer: ServerConfig
RegionName: str
def write_default_config():
config = ConfigData(
LogLevel="INFO",
GameServer=ServerConfig(IP="127.0.0.1", Port=23301),
SDKServer=ServerConfig(IP="127.0.0.1", Port=21000),
RegionName="NeonSR",
)
with open("Config.json", "w") as f:
f.write(json.dumps(asdict(config), indent=2))
return config
def load():
if not os.path.exists("Config.json"):
return ConfigData.write_default_config()
with open("Config.json", "r", encoding="utf-8") as f:
try:
return from_dict(ConfigData, json.load(f))
except Exception:
return ConfigData.write_default_config()
Config : ConfigData = ConfigData.load()