Merge pull request 'Fixed notification on OnMemberJoin #191' (#225) from #191 into 1.0.0

Reviewed-on: sh-edraft.de/kd_discord_bot#225
This commit is contained in:
Sven Heidemann 2023-02-21 10:17:47 +01:00
commit f42f2086e7

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: