diff --git a/src/plugins/Tags.ts b/src/plugins/Tags.ts index fab77e4b..f98e3aa5 100644 --- a/src/plugins/Tags.ts +++ b/src/plugins/Tags.ts @@ -197,7 +197,10 @@ export class TagsPlugin extends ZeppelinPlugin { + if (tagFnCalls++ > maxTagFnCalls) return "\\_recursion\\_"; + if (typeof name !== "string") return ""; + if (name === "") return ""; + const subTag = await this.tags.find(name); + if (!subTag) return ""; + return renderTemplate(subTag.body, { ...data, args }); + }, + }; + + body = await renderTemplate(body, data); } catch (e) { if (e instanceof TemplateParseError) { logger.warn(`Invalid tag format!\nError: ${e.message}\nFormat: ${tag.body}`); @@ -218,6 +231,7 @@ export class TagsPlugin extends ZeppelinPlugin 2048) return; const channel = this.guild.channels.get(msg.channel_id) as TextChannel; const responseMsg = await channel.createMessage(body);