A-0.3 - Basismodul #36
@ -27,7 +27,9 @@
|
|||||||
"MaxVoiceStateHours": 0,
|
"MaxVoiceStateHours": 0,
|
||||||
"XpPerMessage": 0,
|
"XpPerMessage": 0,
|
||||||
"XpPerOntimeHour": 0,
|
"XpPerOntimeHour": 0,
|
||||||
"AFKChannelIds": []
|
"AFKChannelIds": [],
|
||||||
|
"AdminRoleIds": [],
|
||||||
|
"ModeratorRoleIds": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -14,11 +14,14 @@ class ServerSettings(ConfigurationModelABC):
|
|||||||
self._login_message_channel_id: int = 0
|
self._login_message_channel_id: int = 0
|
||||||
self._login_message: str = ''
|
self._login_message: str = ''
|
||||||
self._welcome_message: str = ''
|
self._welcome_message: str = ''
|
||||||
|
self._welcome_message_for_team: str = ''
|
||||||
self._goodbye_message: str = ''
|
self._goodbye_message: str = ''
|
||||||
self._max_voice_state_hours: int = 0
|
self._max_voice_state_hours: int = 0
|
||||||
self._xp_per_message: int = 0
|
self._xp_per_message: int = 0
|
||||||
self._xp_per_ontime_hour: int = 0
|
self._xp_per_ontime_hour: int = 0
|
||||||
self._afk_channel_ids: list[int] = []
|
self._afk_channel_ids: list[int] = []
|
||||||
|
self._admin_roles: list[int] = []
|
||||||
|
self._moderator_roles: list[int] = []
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def id(self) -> str:
|
def id(self) -> str:
|
||||||
@ -40,6 +43,10 @@ class ServerSettings(ConfigurationModelABC):
|
|||||||
def welcome_message(self) -> str:
|
def welcome_message(self) -> str:
|
||||||
return self._welcome_message
|
return self._welcome_message
|
||||||
|
|
||||||
|
@property
|
||||||
|
def welcome_message_for_team(self) -> str:
|
||||||
|
return self._welcome_message_for_team
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def goodbye_message(self) -> str:
|
def goodbye_message(self) -> str:
|
||||||
return self._goodbye_message
|
return self._goodbye_message
|
||||||
@ -60,6 +67,14 @@ class ServerSettings(ConfigurationModelABC):
|
|||||||
def afk_channel_ids(self) -> list[int]:
|
def afk_channel_ids(self) -> list[int]:
|
||||||
return self._afk_channel_ids
|
return self._afk_channel_ids
|
||||||
|
|
||||||
|
@property
|
||||||
|
def admin_roles(self) -> list[int]:
|
||||||
|
return self._admin_roles
|
||||||
|
|
||||||
|
@property
|
||||||
|
def moderator_roles(self) -> list[int]:
|
||||||
|
return self._moderator_roles
|
||||||
|
|
||||||
def from_dict(self, settings: dict):
|
def from_dict(self, settings: dict):
|
||||||
try:
|
try:
|
||||||
self._id = int(settings['Id'])
|
self._id = int(settings['Id'])
|
||||||
@ -67,12 +82,19 @@ class ServerSettings(ConfigurationModelABC):
|
|||||||
self._login_message_channel_id = int(settings['LoginMessageChannelId'])
|
self._login_message_channel_id = int(settings['LoginMessageChannelId'])
|
||||||
self._login_message = settings['LoginMessage']
|
self._login_message = settings['LoginMessage']
|
||||||
self._welcome_message = settings['WelcomeMessage']
|
self._welcome_message = settings['WelcomeMessage']
|
||||||
|
self._welcome_message_for_team = settings['WelcomeMessageForTeam']
|
||||||
self._goodbye_message = settings['GoodbyeMessage']
|
self._goodbye_message = settings['GoodbyeMessage']
|
||||||
self._max_voice_state_hours = int(settings['MaxVoiceStateHours'])
|
self._max_voice_state_hours = int(settings['MaxVoiceStateHours'])
|
||||||
self._xp_per_message = int(settings['XpPerMessage'])
|
self._xp_per_message = int(settings['XpPerMessage'])
|
||||||
self._xp_per_ontime_hour = int(settings['XpPerOntimeHour'])
|
self._xp_per_ontime_hour = int(settings['XpPerOntimeHour'])
|
||||||
for id in settings['AFKChannelIds']:
|
for id in settings['AFKChannelIds']:
|
||||||
self._afk_channel_ids.append(int(id))
|
self._afk_channel_ids.append(int(id))
|
||||||
|
|
||||||
|
for id in settings['AdminRoleIds']:
|
||||||
|
self._admin_roles.append(int(id))
|
||||||
|
|
||||||
|
for id in settings['ModeratorRoleIds']:
|
||||||
|
self._moderator_roles.append(int(id))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in settings')
|
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in settings')
|
||||||
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|
||||||
|
@ -95,6 +95,18 @@ class Base(ModuleABC, OnMemberJoinABC, OnMemberRemoveABC, OnMessageABC, OnVoiceS
|
|||||||
settings: ServerSettings = self._config.get_configuration(f'DSERVER_{member.guild.id}')
|
settings: ServerSettings = self._config.get_configuration(f'DSERVER_{member.guild.id}')
|
||||||
await self._messenger.send_dm_message(settings.welcome_message.format(member.guild.name), member)
|
await self._messenger.send_dm_message(settings.welcome_message.format(member.guild.name), member)
|
||||||
|
|
||||||
|
for roleId in settings.admin_roles:
|
||||||
|
g: discord.Guild = member.guild
|
||||||
|
role: discord.Role = g.get_role(roleId)
|
||||||
|
for admin in role.members:
|
||||||
|
await self._messenger.send_dm_message(settings.welcome_message_for_team.format(member.name), admin)
|
||||||
|
|
||||||
|
for roleId in settings.moderator_roles:
|
||||||
|
g: discord.Guild = member.guild
|
||||||
|
role: discord.Role = g.get_role(roleId)
|
||||||
|
for mod in role.members:
|
||||||
|
await self._messenger.send_dm_message(settings.welcome_message_for_team.format(member.name), mod)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
server = self._servers.get_server_by_discord_id(member.guild.id)
|
server = self._servers.get_server_by_discord_id(member.guild.id)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user