91 lines
3.1 KiB
Python
91 lines
3.1 KiB
Python
import traceback
|
|
|
|
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
|
from cpl_core.console import Console
|
|
|
|
|
|
class BaseSettings(ConfigurationModelABC):
|
|
|
|
def __init__(self):
|
|
ConfigurationModelABC.__init__(self)
|
|
|
|
self._welcome_message: str = ''
|
|
self._welcome_message_for_team: str = ''
|
|
self._goodbye_message: str = ''
|
|
self._max_voice_state_hours: int = 0
|
|
self._xp_per_message: int = 0
|
|
self._xp_per_ontime_hour: int = 0
|
|
self._afk_channel_ids: list[int] = []
|
|
self._purge_message: str = ''
|
|
self._no_permissions_message: str = ''
|
|
self._afk_command_channel_id: int = 0
|
|
self._afk_command_channel_missing_message: str = ''
|
|
self._afk_command_move_message: str = ''
|
|
|
|
@property
|
|
def welcome_message(self) -> str:
|
|
return self._welcome_message
|
|
|
|
@property
|
|
def welcome_message_for_team(self) -> str:
|
|
return self._welcome_message_for_team
|
|
|
|
@property
|
|
def goodbye_message(self) -> str:
|
|
return self._goodbye_message
|
|
|
|
@property
|
|
def max_voice_state_hours(self) -> int:
|
|
return self._max_voice_state_hours
|
|
|
|
@property
|
|
def xp_per_message(self) -> int:
|
|
return self._xp_per_message
|
|
|
|
@property
|
|
def xp_per_ontime_hour(self) -> int:
|
|
return self._xp_per_ontime_hour
|
|
|
|
@property
|
|
def afk_channel_ids(self) -> list[int]:
|
|
return self._afk_channel_ids
|
|
|
|
@property
|
|
def purge_message(self) -> str:
|
|
return self._purge_message
|
|
|
|
@property
|
|
def no_permissions_message(self) -> str:
|
|
return self._no_permissions_message
|
|
|
|
@property
|
|
def afk_command_channel_id(self) -> int:
|
|
return self._afk_command_channel_id
|
|
|
|
@property
|
|
def afk_command_channel_missing_message(self) -> str:
|
|
return self._afk_command_channel_missing_message
|
|
|
|
@property
|
|
def afk_command_move_message(self) -> str:
|
|
return self._afk_command_move_message
|
|
|
|
def from_dict(self, settings: dict):
|
|
try:
|
|
self._welcome_message = settings['WelcomeMessage']
|
|
self._welcome_message_for_team = settings['WelcomeMessageForTeam']
|
|
self._goodbye_message = settings['GoodbyeMessage']
|
|
self._max_voice_state_hours = int(settings['MaxVoiceStateHours'])
|
|
self._xp_per_message = int(settings['XpPerMessage'])
|
|
self._xp_per_ontime_hour = int(settings['XpPerOntimeHour'])
|
|
for id in settings['AFKChannelIds']:
|
|
self._afk_channel_ids.append(int(id))
|
|
self._purge_message = settings['PurgeMessage']
|
|
self._no_permissions_message = settings['NoPermissionsMessage']
|
|
self._afk_command_channel_id = settings['AFKCommandChannelId']
|
|
self._afk_command_channel_missing_message = settings['AFKCommandChannelMissingMessage']
|
|
self._afk_command_move_message = settings['AFKCommandMoveMessage']
|
|
except Exception as e:
|
|
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
|
|
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|