From ca6eedb1beabce7a91cb7ba2d245fd45576fec8b Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 13 Oct 2019 22:05:26 +0300 Subject: [PATCH] censor: if invite filtering is enabled, always remove unknown invites --- src/plugins/Automod.ts | 2 ++ src/plugins/Censor.ts | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/Automod.ts b/src/plugins/Automod.ts index 62ca5d00..f1751d46 100644 --- a/src/plugins/Automod.ts +++ b/src/plugins/Automod.ts @@ -590,7 +590,9 @@ export class AutomodPlugin extends ZeppelinPlugin { const invites: Array = await Promise.all(uniqueInviteCodes.map(code => this.resolveInvite(code))); for (const invite of invites) { + // Always match on unknown invites if (!invite) return true; + if (trigger.include_guilds && trigger.include_guilds.includes(invite.guild.id)) { return true; } diff --git a/src/plugins/Censor.ts b/src/plugins/Censor.ts index 9ffa8e0d..7362c482 100644 --- a/src/plugins/Censor.ts +++ b/src/plugins/Censor.ts @@ -167,11 +167,15 @@ export class CensorPlugin extends ZeppelinPlugin { const inviteCodes = getInviteCodesInString(messageContent); - let invites: Invite[] = await Promise.all(inviteCodes.map(code => this.resolveInvite(code))); - - invites = invites.filter(v => !!v); + const invites: Array = await Promise.all(inviteCodes.map(code => this.resolveInvite(code))); for (const invite of invites) { + // Always filter unknown invites if invite filtering is enabled + if (invite == null) { + this.censorMessage(savedMessage, `unknown invite not found in whitelist`); + return true; + } + if (!invite.guild && !allowGroupDMInvites) { this.censorMessage(savedMessage, `group dm invites are not allowed`); return true;