From c5b5297058aa35463db72411b91321c724cc0108 Mon Sep 17 00:00:00 2001 From: Nick Jungmann Date: Sun, 20 Nov 2022 06:21:51 +0100 Subject: [PATCH 1/2] Added presence command #18 --- kdb-bot/src/bot/config | 2 +- kdb-bot/src/bot/translation/de.json | 5 ++ kdb-bot/src/modules/base/base_module.py | 2 + .../modules/base/command/presence_command.py | 46 +++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 kdb-bot/src/modules/base/command/presence_command.py diff --git a/kdb-bot/src/bot/config b/kdb-bot/src/bot/config index 43ae9106e2..52d19fab6d 160000 --- a/kdb-bot/src/bot/config +++ b/kdb-bot/src/bot/config @@ -1 +1 @@ -Subproject commit 43ae9106e2032d54cc33de3521fdb08742ab4ecd +Subproject commit 52d19fab6dcfd2e7bce068f01d0e15ddf7d43212 diff --git a/kdb-bot/src/bot/translation/de.json b/kdb-bot/src/bot/translation/de.json index 9398972ea6..3ab63d0b75 100644 --- a/kdb-bot/src/bot/translation/de.json +++ b/kdb-bot/src/bot/translation/de.json @@ -151,6 +151,11 @@ }, "footer": "" }, + "presence": { + "changed": "Presence wurde geƤndert.", + "removed": "Presence wurde entfernt.", + "max_char_count_exceeded": "Der Text darf nicht mehr als 128 Zeichen lang sein!" + }, "user_info": { "fields": { "id": "Id", diff --git a/kdb-bot/src/modules/base/base_module.py b/kdb-bot/src/modules/base/base_module.py index 0282a18000..f2dadd90c5 100644 --- a/kdb-bot/src/modules/base/base_module.py +++ b/kdb-bot/src/modules/base/base_module.py @@ -11,6 +11,7 @@ from modules.base.command.afk_command import AFKCommand from modules.base.command.help_command import HelpCommand from modules.base.command.info_command import InfoCommand from modules.base.command.ping_command import PingCommand +from modules.base.command.presence_command import PresenceCommand from modules.base.command.purge_command import PurgeCommand from modules.base.command.user_group import UserGroup from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent @@ -42,6 +43,7 @@ class BaseModule(ModuleABC): self._dc.add_command(HelpCommand) self._dc.add_command(InfoCommand) self._dc.add_command(PingCommand) + self._dc.add_command(PresenceCommand) self._dc.add_command(PurgeCommand) self._dc.add_command(UserGroup) diff --git a/kdb-bot/src/modules/base/command/presence_command.py b/kdb-bot/src/modules/base/command/presence_command.py new file mode 100644 index 0000000000..a453e7e197 --- /dev/null +++ b/kdb-bot/src/modules/base/command/presence_command.py @@ -0,0 +1,46 @@ +import discord +from cpl_discord.command import DiscordCommandABC +from cpl_discord.service import DiscordBotServiceABC +from cpl_translation import TranslatePipe +from discord.ext import commands +from discord.ext.commands import Context + +from bot_core.abc.message_service_abc import MessageServiceABC +from bot_core.helper.command_checks import CommandChecks +from bot_core.logging.command_logger import CommandLogger + + +class PresenceCommand(DiscordCommandABC): + + def __init__( + self, + logger: CommandLogger, + message_service: MessageServiceABC, + bot: DiscordBotServiceABC, + translate: TranslatePipe, + ): + DiscordCommandABC.__init__(self) + + self._logger = logger + self._message_service = message_service + self._bot = bot + self._t = translate + + @commands.hybrid_command() + @commands.guild_only() + @CommandChecks.check_is_ready() + @CommandChecks.check_is_member_technician() + async def presence(self, ctx: Context, text: str = ''): + self._logger.debug(__name__, f'Received command presence {ctx}') + + if text == '': + await self._bot.change_presence(activity=None) + await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.removed')) + else: + if len(text) > 128: + await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.max_char_count_exceeded')) + else: + await self._bot.change_presence(activity=discord.Game(name=text)) + await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.changed')) + + self._logger.trace(__name__, f'Finished presence command') From 7fb6d22c3f11789fea81fe914da0fae7afe6c004 Mon Sep 17 00:00:00 2001 From: Nick Jungmann Date: Sun, 20 Nov 2022 15:38:54 +0100 Subject: [PATCH 2/2] Added requested changes to presence command #18 --- .../src/modules/base/command/presence_command.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/kdb-bot/src/modules/base/command/presence_command.py b/kdb-bot/src/modules/base/command/presence_command.py index a453e7e197..99db2fca8a 100644 --- a/kdb-bot/src/modules/base/command/presence_command.py +++ b/kdb-bot/src/modules/base/command/presence_command.py @@ -29,18 +29,20 @@ class PresenceCommand(DiscordCommandABC): @commands.hybrid_command() @commands.guild_only() @CommandChecks.check_is_ready() - @CommandChecks.check_is_member_technician() + @CommandChecks.check_is_member_moderator() async def presence(self, ctx: Context, text: str = ''): self._logger.debug(__name__, f'Received command presence {ctx}') if text == '': await self._bot.change_presence(activity=None) await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.removed')) - else: - if len(text) > 128: - await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.max_char_count_exceeded')) - else: - await self._bot.change_presence(activity=discord.Game(name=text)) - await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.changed')) + return + + if len(text) > 128: + await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.max_char_count_exceeded')) + return + + await self._bot.change_presence(activity=discord.Game(name=text)) + await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.changed')) self._logger.trace(__name__, f'Finished presence command')