From ca5c7fed6429b0b7233f857a7b987feb29550d0b Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 12 Jan 2020 17:02:14 +0200 Subject: [PATCH] ReactionRoles: automatically clear reaction roles from unknown messages --- backend/src/plugins/ReactionRoles.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/plugins/ReactionRoles.ts b/backend/src/plugins/ReactionRoles.ts index ca7676cf..760415cd 100644 --- a/backend/src/plugins/ReactionRoles.ts +++ b/backend/src/plugins/ReactionRoles.ts @@ -143,9 +143,18 @@ export class ReactionRolesPlugin extends ZeppelinPlugin { targetMessage = await channel.getMessage(messageId); } catch (e) { if (e instanceof DiscordRESTError) { - logger.warn( - `Reaction roles for unknown message ${channelId}/${messageId} in guild ${this.guild.name} (${this.guildId}) (error code ${e.code})`, - ); + if (e.code === 10008) { + // Unknown message, remove reaction roles from the message + logger.warn( + `Removed reaction roles from unknown message ${channelId}/${messageId} in guild ${this.guild.name} (${this.guildId})`, + ); + await this.reactionRoles.removeFromMessage(messageId); + } else { + logger.warn( + `Error when applying reaction roles to message ${channelId}/${messageId} in guild ${this.guild.name} (${this.guildId}), error code ${e.code}`, + ); + } + return; } else { throw e;