From eca67317ad47b319002ac0d9ec7c97ecf418d00f Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 19 Jul 2022 14:12:43 +0200 Subject: [PATCH] Improved basic command error handling --- src/bot/translation/de.json | 11 +++++++---- .../base/events/base_on_command_error_event.py | 7 ++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/bot/translation/de.json b/src/bot/translation/de.json index 52edc751..dc2eb66a 100644 --- a/src/bot/translation/de.json +++ b/src/bot/translation/de.json @@ -3,7 +3,10 @@ "hello_world": "Hallo Welt", "bot_has_no_permission_message": "Ey!!!\nWas soll das?\nIch habe keine Berechtigungen :(\nScheiß System...", "no_permission_message": "Nein!\nIch höre nicht auf dich ¯\\_(ツ)_/¯", - "not_implemented_yet": "Ey Alter, das kann ich noch nicht..." + "not_implemented_yet": "Ey Alter, das kann ich noch nicht...", + "errors": { + "command_error": "Es gab einen Fehler. Meld dich bitte bei einem Admin." + } }, "modules": { "admin": { @@ -11,13 +14,13 @@ "shutdown_message": "Trauert nicht um mich, es war eine logische Entscheidung. Das Wohl von Vielen, es wiegt schwerer als das Wohl von Wenigen oder eines Einzelnen. Ich war es und ich werde es immer sein, Euer Freund. Lebt lange und in Frieden :)" }, "moderator": { - "goodbye_message": "Schade das du uns so schnell verlässt :(" + "purge_message": "Na gut..., ich lösche alle Nachrichten wenns sein muss." }, "base": { - "technician_command_error_message": "Es gab ein Fehler mit dem Befehl: {} ausgelöst von {} -> {}\nDatum und Zeit: {}\nSchau bitte ins log für Details.", + "technician_command_error_message": "Es gab ein Fehler mit dem Befehl: {} ausgelöst von {} -> {}\nDatum und Zeit: {}\nSchau bitte ins log für Details.UUID: {}", "welcome_message": "Hello There!\nIch heiße dich bei {} herzlichst willkommen!", "welcome_message_for_team": "{} hat gerade das Irrenhaus betreten.", - "purge_message": "Na gut..., ich lösche alle Nachrichten wenns sein muss.", + "goodbye_message": "Schade das du uns so schnell verlässt :(", "afk_command_channel_missing_message": "Zu unfähig einem Sprachkanal beizutreten?", "afk_command_move_message": "Ich verschiebe dich ja schon... (◔_◔)", "pong": "Pong", diff --git a/src/modules/base/events/base_on_command_error_event.py b/src/modules/base/events/base_on_command_error_event.py index 107ccbdc..8584a132 100644 --- a/src/modules/base/events/base_on_command_error_event.py +++ b/src/modules/base/events/base_on_command_error_event.py @@ -1,4 +1,5 @@ import datetime +import uuid from cpl_core.time import TimeFormatSettings from cpl_discord.service import DiscordBotServiceABC @@ -34,6 +35,8 @@ class BaseOnCommandErrorEvent(OnCommandErrorABC): async def on_command_error(self, ctx: Context, error: CommandError): error = getattr(error, 'original', error) + uid = uuid.uuid4() + self._logger.error(__name__, f'Got error: {type(error).__name__} UID: {uid}') # Todo: translate error messages !!! if isinstance(error, commands.MissingRequiredArgument): @@ -130,11 +133,13 @@ class BaseOnCommandErrorEvent(OnCommandErrorABC): await self._messenger.send_ctx_msg(ctx, 'Fehler: Erweiterung ist fehlgeschlagen!', without_tracking=True) else: + await self._messenger.send_ctx_msg(ctx, self._t.transform('common.errors.command_error'), without_tracking=True) message = self._t.transform('modules.base.technician_command_error_message').format( ctx.command, ctx.author, error, - datetime.datetime.now().strftime(self._time_format_settings.date_time_format) + datetime.datetime.now().strftime(self._time_format_settings.date_time_format), + uid ) for t in self._bot_settings.technicians: member = self._bot.get_user(t)