diff --git a/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts b/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts index bd816562..d10d95d1 100644 --- a/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts +++ b/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts @@ -16,6 +16,7 @@ const MIN_AUTO_REFRESH = 1000 * 60 * 15; // 15min minimum, let's not abuse the A const defaultOptions: PluginOptions = { config: { auto_refresh_interval: MIN_AUTO_REFRESH, + remove_user_reactions: true, can_manage: false, }, diff --git a/backend/src/plugins/ReactionRoles/events/AddReactionRoleEvt.ts b/backend/src/plugins/ReactionRoles/events/AddReactionRoleEvt.ts index 9b7b045f..28354517 100644 --- a/backend/src/plugins/ReactionRoles/events/AddReactionRoleEvt.ts +++ b/backend/src/plugins/ReactionRoles/events/AddReactionRoleEvt.ts @@ -51,13 +51,16 @@ export const AddReactionRoleEvt = reactionRolesEvent({ } // Remove the reaction after a small delay - setTimeout(() => { - pluginData.state.reactionRemoveQueue.add(async () => { - const reaction = emoji.id ? `${emoji.name}:${emoji.id}` : emoji.name; - const wait = sleep(1500); - await msg.channel.removeMessageReaction(msg.id, reaction, userId).catch(noop); - await wait; - }); - }, 1500); + const config = pluginData.config.getForMember(member); + if (config.remove_user_reactions) { + setTimeout(() => { + pluginData.state.reactionRemoveQueue.add(async () => { + const reaction = emoji.id ? `${emoji.name}:${emoji.id}` : emoji.name; + const wait = sleep(1500); + await msg.channel.removeMessageReaction(msg.id, reaction, userId).catch(noop); + await wait; + }); + }, 1500); + } }, }); diff --git a/backend/src/plugins/ReactionRoles/types.ts b/backend/src/plugins/ReactionRoles/types.ts index 434a4e7d..11d3235c 100644 --- a/backend/src/plugins/ReactionRoles/types.ts +++ b/backend/src/plugins/ReactionRoles/types.ts @@ -6,6 +6,7 @@ import { Queue } from "src/Queue"; export const ConfigSchema = t.type({ auto_refresh_interval: t.number, + remove_user_reactions: t.boolean, can_manage: t.boolean, }); export type TConfigSchema = t.TypeOf;