From 006ba3dd1e708d9afa4933281cd7848fdf2b26d8 Mon Sep 17 00:00:00 2001 From: gnuxie Date: Mon, 29 May 2023 17:12:24 +0100 Subject: [PATCH] Improve error reporting of CommandException --- src/commands/CommandHandler.ts | 1 - .../interface-manager/MatrixHelpRenderer.tsx | 14 +++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/commands/CommandHandler.ts b/src/commands/CommandHandler.ts index 893fc705..1b2f8757 100644 --- a/src/commands/CommandHandler.ts +++ b/src/commands/CommandHandler.ts @@ -141,7 +141,6 @@ export async function handleCommand(roomId: string, event: { content: { body: st return await adaptor.invoke(mjolnirContext, mjolnirContext, ...stream.rest()); } catch (e) { const commandError = new CommandException(e, 'Unknown Unexpected Error'); - LogService.error("CommandHandler", commandError.uuid, commandError.message, e); await tickCrossRenderer.call(mjolnirContext, mjolnir.client, roomId, event, CommandResult.Err(commandError)); } } diff --git a/src/commands/interface-manager/MatrixHelpRenderer.tsx b/src/commands/interface-manager/MatrixHelpRenderer.tsx index a4fb10c8..0275b669 100644 --- a/src/commands/interface-manager/MatrixHelpRenderer.tsx +++ b/src/commands/interface-manager/MatrixHelpRenderer.tsx @@ -11,6 +11,7 @@ import { JSXFactory } from "./JSXFactory"; import { DocumentNode } from "./DeadDocument"; import { renderMatrixAndSend } from "./DeadDocumentMatrix"; import { CommandException } from "./CommandException"; +import { LogService } from "matrix-bot-sdk"; function requiredArgument(argumentName: string): string { return `<${argumentName}>`; @@ -73,12 +74,15 @@ export async function renderHelp(client: MatrixSendClient, commandRoomId: string export async function tickCrossRenderer(this: MatrixInterfaceAdaptor, client: MatrixSendClient, commandRoomId: string, event: any, result: CommandResult): Promise { const react = async (emote: string) => { - await client.unstableApis.addReactionToEvent(commandRoomId, event['event_id'], emote); + try { + await client.unstableApis.addReactionToEvent(commandRoomId, event['event_id'], emote); + } catch (e) { + LogService.error("tickCrossRenderer", "Couldn't react to the event", event['event_id'], e); + } } if (result.isOk()) { await react('✅') } else { - await react('❌'); if (result.err instanceof ArgumentParseError) { await renderMatrixAndSend( renderArgumentParseError(this.interfaceCommand, result.err), @@ -86,6 +90,8 @@ export async function tickCrossRenderer(this: MatrixInterfaceAdaptor, error: export function renderMentionPill(mxid: string, displayName: string): DocumentNode { const url = `https://matrix.to/#/${mxid}`; return {displayName} -} \ No newline at end of file +}