Fixed notification on OnMemberJoin #191 #221

Merged
edraft merged 1 commits from #191 into 1.0.0 2023-02-21 09:57:41 +01:00

View File

@ -57,6 +57,7 @@ class LevelService:
if level_role in member.roles:
return
notification_needed = False
for role in member.roles:
if role.name not in level_names.to_list():
continue
@ -64,6 +65,7 @@ class LevelService:
try:
self._logger.debug(__name__, f"Try to remove role {role.name} from {member.name}")
await member.remove_roles(role)
notification_needed = True
self._logger.info(__name__, f"Removed role {role.name} from {member.name}")
except Exception as e:
self._logger.error(__name__, f"Removing role {role.name} from {member.name} failed!", e)
@ -75,12 +77,13 @@ class LevelService:
except Exception as e:
self._logger.error(__name__, f"Adding role {level_role.name} to {member.name} failed!", e)
level_settings: LevelServerSettings = self._config.get_configuration(f"LevelServerSettings_{guild.id}")
await self._message_service.send_channel_message(
self._bot.get_channel(level_settings.changed_level_notification_channel),
self._t.transform("modules.level.new_level_message").format(member.mention, level.name),
is_persistent=True,
)
if notification_needed:
level_settings: LevelServerSettings = self._config.get_configuration(f"LevelServerSettings_{guild.id}")
await self._message_service.send_channel_message(
self._bot.get_channel(level_settings.changed_level_notification_channel),
self._t.transform("modules.level.new_level_message").format(member.mention, level.name),
is_persistent=True,
)
async def check_level(self, member: discord.Member):
if member.bot: