Added presence command #18 #126

Merged
edraft merged 2 commits from #18 into 0.3 2022-11-20 15:41:26 +01:00
4 changed files with 56 additions and 1 deletions

@ -1 +1 @@
Subproject commit 43ae9106e2032d54cc33de3521fdb08742ab4ecd
Subproject commit 52d19fab6dcfd2e7bce068f01d0e15ddf7d43212

View File

@ -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",

View File

@ -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)

View File

@ -0,0 +1,48 @@
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_moderator()
Ebola-Chan marked this conversation as resolved Outdated

Moderator nicht Techniker

Moderator nicht Techniker

Hatten wir das nicht besprochen dass nur wir die Presence setzen sollen, da diese Global ist?

Hatten wir das nicht besprochen dass nur wir die Presence setzen sollen, da diese Global ist?

War ein aspekt aber mir solls egal sein, zu mal das nicht im Issue geändert wurde.

War ein aspekt aber mir solls egal sein, zu mal das nicht im Issue geändert wurde.
async def presence(self, ctx: Context, text: str = ''):
self._logger.debug(__name__, f'Received command presence {ctx}')
if text == '':
Ebola-Chan marked this conversation as resolved
Review

early returns pls:

if text == '':
    await self._bot.change_presence(activity=None)
    await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.removed'))
    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'))

early returns pls: ```py if text == '': await self._bot.change_presence(activity=None) await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.removed')) 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')) ```
await self._bot.change_presence(activity=None)
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.presence.removed'))
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')