diff --git a/package.json b/package.json index 1e06ecc0d1090c4e240812eeb428599a793684ac..c2f4f8576f78931066f75f586483c1f52a59860f 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "command-line-args": "^4.0.1", "command-line-usage": "^4.0.0", "discord.js": "^11.1.0", + "escape-string-regexp": "^1.0.5", "js-yaml": "^3.8.1", "marked": "^0.3.6", "matrix-appservice-bridge": "^1.4.0", diff --git a/src/bot.ts b/src/bot.ts index 32b8e986b301064394519c06f45b5b8f3c86f812..1c870cb3d5b47719d06de69182a952ddbfb7f978 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -9,6 +9,7 @@ import * as Bluebird from "bluebird"; import * as mime from "mime"; import * as marked from "marked"; import * as path from "path"; +import * as escapeStringRegexp from "escape-string-regexp"; // Due to messages often arriving before we get a response from the send call, // messages get delayed from discord. @@ -240,7 +241,7 @@ export class DiscordBot { private HandleMentions(body: string, members: Discord.GuildMember[]): string { for (const member of members) { - body = body.replace(new RegExp(member.displayName, "g"), `<@!${member.id}>`); + body = body.replace(new RegExp(escapeStringRegexp(member.displayName), "g"), `<@!${member.id}>`); } return body; }