Improved basic command error handling

This commit is contained in:
Sven Heidemann 2022-07-19 14:12:43 +02:00
parent 47b8af57cd
commit eca67317ad
2 changed files with 13 additions and 5 deletions

View File

@ -3,7 +3,10 @@
"hello_world": "Hallo Welt", "hello_world": "Hallo Welt",
"bot_has_no_permission_message": "Ey!!!\nWas soll das?\nIch habe keine Berechtigungen :(\nScheiß System...", "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 ¯\\_(ツ)_/¯", "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": { "modules": {
"admin": { "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 :)" "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": { "moderator": {
"goodbye_message": "Schade das du uns so schnell verlässt :(" "purge_message": "Na gut..., ich lösche alle Nachrichten wenns sein muss."
}, },
"base": { "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": "Hello There!\nIch heiße dich bei {} herzlichst willkommen!",
"welcome_message_for_team": "{} hat gerade das Irrenhaus betreten.", "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_channel_missing_message": "Zu unfähig einem Sprachkanal beizutreten?",
"afk_command_move_message": "Ich verschiebe dich ja schon... (◔_◔)", "afk_command_move_message": "Ich verschiebe dich ja schon... (◔_◔)",
"pong": "Pong", "pong": "Pong",

View File

@ -1,4 +1,5 @@
import datetime import datetime
import uuid
from cpl_core.time import TimeFormatSettings from cpl_core.time import TimeFormatSettings
from cpl_discord.service import DiscordBotServiceABC from cpl_discord.service import DiscordBotServiceABC
@ -34,6 +35,8 @@ class BaseOnCommandErrorEvent(OnCommandErrorABC):
async def on_command_error(self, ctx: Context, error: CommandError): async def on_command_error(self, ctx: Context, error: CommandError):
error = getattr(error, 'original', error) error = getattr(error, 'original', error)
uid = uuid.uuid4()
self._logger.error(__name__, f'Got error: {type(error).__name__} UID: {uid}')
# Todo: translate error messages !!! # Todo: translate error messages !!!
if isinstance(error, commands.MissingRequiredArgument): 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) await self._messenger.send_ctx_msg(ctx, 'Fehler: Erweiterung ist fehlgeschlagen!', without_tracking=True)
else: 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( message = self._t.transform('modules.base.technician_command_error_message').format(
ctx.command, ctx.command,
ctx.author, ctx.author,
error, 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: for t in self._bot_settings.technicians:
member = self._bot.get_user(t) member = self._bot.get_user(t)