Merge branch '0.3' into #97

This commit is contained in:
Sven Heidemann 2022-11-11 07:26:34 +01:00
commit 6ff53fb31c
3 changed files with 22 additions and 3 deletions

View File

@ -7,7 +7,7 @@ from cpl_discord.container import TextChannel
from cpl_discord.service import DiscordBotServiceABC from cpl_discord.service import DiscordBotServiceABC
from cpl_query.extension import List from cpl_query.extension import List
from cpl_translation import TranslatePipe from cpl_translation import TranslatePipe
from discord import app_commands from discord import app_commands, Guild
from discord.ext import commands from discord.ext import commands
from discord.ext.commands import Context from discord.ext.commands import Context
@ -258,13 +258,27 @@ class AutoRoleGroup(DiscordCommandABC):
self._logger.trace(__name__, f'Finished command auto-role rule add') self._logger.trace(__name__, f'Finished command auto-role rule add')
return return
if self._auto_roles.get_auto_role_rules_by_auto_role_id(auto_role).where(lambda r: r.emoji_name == emoji.name and int(role_id) == role.id).count() > 0: if self._auto_roles.get_auto_role_rules_by_auto_role_id(auto_role).where(lambda r: r.emoji_name == emoji.name and int(role_id) == role.id).first_or_default() is not None:
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.auto_role.add.error.already_exists').format(auto_role)) await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.auto_role.add.error.already_exists').format(auto_role))
self._logger.trace(__name__, f'Finished command auto-role rule add') self._logger.trace(__name__, f'Finished command auto-role rule add')
return return
self._auto_roles.add_auto_role_rule(AutoRoleRule(auto_role, emoji_name, int(role_id))) self._auto_roles.add_auto_role_rule(AutoRoleRule(auto_role, emoji_name, int(role_id)))
self._db_context.save_changes() self._db_context.save_changes()
rule = self._auto_roles.get_auto_role_rules_by_auto_role_id(auto_role).where(lambda r: r.emoji_name == emoji.name and int(role_id) == role.id).single()
try:
message = await ctx.fetch_message(auto_role_from_db.discord_message_id)
guild: Guild = self._bot.guilds.where(lambda g: g == ctx.guild).single()
emoji = List(discord.Emoji, guild.emojis).where(lambda x: x.name == rule.emoji_name).single()
if emoji is None:
self._logger.debug(__name__, f'Emoji {rule.emoji_name} not found')
return
await message.add_reaction(emoji)
self._logger.debug(__name__, f'Added reaction {rule.emoji_name} to message: {auto_role_from_db.discord_message_id}')
except Exception as e:
self._logger.error(__name__, f'Cannot add reaction {rule.emoji_name} to message: {auto_role_from_db.discord_message_id}', e)
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.auto_role.rule.add.success').format(emoji, role.name, auto_role)) await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.auto_role.rule.add.success').format(emoji, role.name, auto_role))
self._logger.trace(__name__, f'Finished command auto-role rule add') self._logger.trace(__name__, f'Finished command auto-role rule add')

View File

@ -58,8 +58,8 @@ class RestartCommand(DiscordCommandABC):
self._config.add_configuration('IS_RESTART', 'true') self._config.add_configuration('IS_RESTART', 'true')
await self._client_utils.presence_game('common.presence.restart') await self._client_utils.presence_game('common.presence.restart')
await asyncio.sleep(self._settings.wait_for_restart)
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.admin.restart_message')) await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.admin.restart_message'))
await asyncio.sleep(self._settings.wait_for_restart)
await self._bot.stop_async() await self._bot.stop_async()
self._logger.trace(__name__, f'Finished restart command') self._logger.trace(__name__, f'Finished restart command')

View File

@ -122,6 +122,11 @@ class LevelGroup(DiscordCommandABC):
return return
self._client_utils.received_command(ctx.guild.id) self._client_utils.received_command(ctx.guild.id)
if not self._permissions.is_member_admin(ctx.author):
await self._message_service.send_ctx_msg(ctx, self._t.transform('common.no_permission_message'))
self._logger.trace(__name__, f'Finished command level remove')
return
try: try:
color = hex(discord.Colour.from_str(color).value) color = hex(discord.Colour.from_str(color).value)
except Exception as e: except Exception as e: