diff --git a/backend/src/plugins/ReactionRoles/commands/ClearReactionRolesCmd.ts b/backend/src/plugins/ReactionRoles/commands/ClearReactionRolesCmd.ts index 6b5329b3..b5f78fe7 100644 --- a/backend/src/plugins/ReactionRoles/commands/ClearReactionRolesCmd.ts +++ b/backend/src/plugins/ReactionRoles/commands/ClearReactionRolesCmd.ts @@ -1,7 +1,8 @@ import { reactionRolesCmd } from "../types"; import { commandTypeHelpers as ct } from "../../../commandTypes"; import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils"; -import { TextChannel } from "eris"; +import { Message, TextChannel } from "eris"; +import { isDiscordRESTError } from "../../../utils"; export const ClearReactionRolesCmd = reactionRolesCmd({ trigger: "reaction_roles clear", @@ -20,7 +21,18 @@ export const ClearReactionRolesCmd = reactionRolesCmd({ pluginData.state.reactionRoles.removeFromMessage(args.message.messageId); - const targetMessage = await args.message.channel.getMessage(args.message.messageId); + let targetMessage: Message; + try { + targetMessage = await args.message.channel.getMessage(args.message.messageId); + } catch (err) { + if (isDiscordRESTError(err) && err.code === 50001) { + sendErrorMessage(pluginData, msg.channel, "Missing access to the specified message"); + return; + } + + throw err; + } + await targetMessage.removeReactions(); sendSuccessMessage(pluginData, msg.channel, "Reaction roles cleared");