diff --git a/backend/src/plugins/Tags/commands/TagEvalCmd.ts b/backend/src/plugins/Tags/commands/TagEvalCmd.ts index 3138bcd6..d16afbbd 100644 --- a/backend/src/plugins/Tags/commands/TagEvalCmd.ts +++ b/backend/src/plugins/Tags/commands/TagEvalCmd.ts @@ -1,6 +1,9 @@ import { tagsCmd } from "../types"; import { commandTypeHelpers as ct } from "../../../commandTypes"; import { renderTag } from "../util/renderTag"; +import { MessageContent } from "eris"; +import { TemplateParseError } from "../../../templateFormatter"; +import { sendErrorMessage } from "../../../pluginUtils"; export const TagEvalCmd = tagsCmd({ trigger: "tag eval", @@ -11,7 +14,16 @@ export const TagEvalCmd = tagsCmd({ }, async run({ message: msg, args, pluginData }) { - const rendered = await renderTag(pluginData, args.body); - msg.channel.createMessage(rendered); + try { + const rendered = await renderTag(pluginData, args.body); + msg.channel.createMessage(rendered); + } catch (e) { + if (e instanceof TemplateParseError) { + sendErrorMessage(pluginData, msg.channel, `Failed to render tag: ${e.message}`); + return; + } + + throw e; + } }, });