Fixed notification on OnMemberJoin #191

This commit is contained in:
Nick Jungmann 2023-02-20 21:43:31 +01:00
parent 8f95e196ec
commit 753af70b9a

View File

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