From caf77a3d7fed3e270da7692dc112f70784a85c56 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sat, 13 May 2023 17:01:10 -0700 Subject: [PATCH] NoReplyMention: add option to only exclude specific users from pings (#1107) Co-authored-by: V --- src/plugins/noReplyMention.tsx | 24 ++++++++++++++++++++---- src/utils/constants.ts | 6 +++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/plugins/noReplyMention.tsx b/src/plugins/noReplyMention.tsx index 3ec8aefa8..16b3a3e00 100644 --- a/src/plugins/noReplyMention.tsx +++ b/src/plugins/noReplyMention.tsx @@ -22,12 +22,27 @@ import definePlugin, { OptionType } from "@utils/types"; import type { Message } from "discord-types/general"; const settings = definePluginSettings({ - exemptList: { + userList: { description: - "List of users to exempt from this plugin (separated by commas or spaces)", + "List of users to allow or exempt pings for (separated by commas or spaces)", type: OptionType.STRING, default: "1234567890123445,1234567890123445", }, + shouldPingListed: { + description: "Behaviour", + type: OptionType.SELECT, + options: [ + { + label: "Do not ping the listed users", + value: false, + }, + { + label: "Only ping the listed users", + value: true, + default: true, + }, + ], + }, inverseShiftReply: { description: "Invert Discord's shift replying behaviour (enable to make shift reply mention user)", type: OptionType.BOOLEAN, @@ -38,11 +53,12 @@ const settings = definePluginSettings({ export default definePlugin({ name: "NoReplyMention", description: "Disables reply pings by default", - authors: [Devs.DustyAngel47, Devs.axyie, Devs.pylix], + authors: [Devs.DustyAngel47, Devs.axyie, Devs.pylix, Devs.outfoxxed], settings, shouldMention(message: Message, isHoldingShift: boolean) { - const isExempt = settings.store.exemptList.includes(message.author.id); + const isListed = settings.store.userList.includes(message.author.id); + const isExempt = settings.store.shouldPingListed ? isListed : !isListed; return settings.store.inverseShiftReply ? isHoldingShift !== isExempt : !isHoldingShift && isExempt; }, diff --git a/src/utils/constants.ts b/src/utils/constants.ts index b53c1d7c0..1c7047090 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -290,5 +290,9 @@ export const Devs = /* #__PURE__*/ Object.freeze({ CatNoir: { name: "CatNoir", id: 260371016348336128n - } + }, + outfoxxed: { + name: "outfoxxed", + id: 837425748435796060n + }, });