from typing import Dict, List from core.config import CoreConfig class WaccaServerConfig: def __init__(self, parent_config: "WaccaConfig") -> None: self.__config = parent_config @property def enable(self) -> bool: return CoreConfig.get_config_field( self.__config, "wacca", "server", "enable", default=True ) @property def loglevel(self) -> int: return CoreConfig.str_to_loglevel( CoreConfig.get_config_field( self.__config, "wacca", "server", "loglevel", default="info" ) ) @property def prefecture_name(self) -> str: return CoreConfig.get_config_field( self.__config, "wacca", "server", "prefecture_name", default="Hokkaido" ) class WaccaModsConfig: def __init__(self, parent_config: "WaccaConfig") -> None: self.__config = parent_config @property def always_vip(self) -> bool: return CoreConfig.get_config_field( self.__config, "wacca", "mods", "always_vip", default=True ) @property def infinite_tickets(self) -> bool: return CoreConfig.get_config_field( self.__config, "wacca", "mods", "infinite_tickets", default=True ) @property def infinite_wp(self) -> bool: return CoreConfig.get_config_field( self.__config, "wacca", "mods", "infinite_wp", default=True ) class WaccaGateConfig: def __init__(self, parent_config: "WaccaConfig") -> None: self.__config = parent_config @property def enabled_gates(self) -> List[int]: return CoreConfig.get_config_field( self.__config, "wacca", "gates", "enabled_gates", default=[] ) class WaccaConfig(dict): def __init__(self) -> None: self.server = WaccaServerConfig(self) self.mods = WaccaModsConfig(self) self.gates = WaccaGateConfig(self)