diff options
Diffstat (limited to 'src/plugins/noReplyMention.tsx')
-rw-r--r-- | src/plugins/noReplyMention.tsx | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/src/plugins/noReplyMention.tsx b/src/plugins/noReplyMention.tsx index 2e97588..1351ec4 100644 --- a/src/plugins/noReplyMention.tsx +++ b/src/plugins/noReplyMention.tsx @@ -16,43 +16,43 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "@api/settings"; +import { definePluginSettings } from "@api/settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; +import type { Message } from "discord-types/general"; -interface Reply { - message: { - author: { - id: string; - }; - }; -} +const settings = definePluginSettings({ + exemptList: { + description: + "List of users to exempt from this plugin (separated by commas or spaces)", + type: OptionType.STRING, + default: "1234567890123445,1234567890123445", + }, + inverseShiftReply: { + description: "Invert Discord's shift replying behaviour (enable to make shift reply mention user)", + type: OptionType.BOOLEAN, + default: false, + } +}); export default definePlugin({ name: "NoReplyMention", description: "Disables reply pings by default", - authors: [Devs.DustyAngel47, Devs.axyie], - options: { - exemptList: { - description: - "List of users to exempt from this plugin (separated by commas)", - type: OptionType.STRING, - default: "1234567890123445,1234567890123445", - }, - }, - shouldMention(reply: Reply) { - return Settings.plugins.NoReplyMention.exemptList.includes( - reply.message.author.id - ); + authors: [Devs.DustyAngel47, Devs.axyie, Devs.pylix], + settings, + + shouldMention(message: Message, isHoldingShift: boolean) { + const isExempt = settings.store.exemptList.includes(message.author.id); + return settings.store.inverseShiftReply ? isHoldingShift !== isExempt : !isHoldingShift && isExempt; }, + patches: [ { - find: "CREATE_PENDING_REPLY:function", + find: ",\"Message\")}function", replacement: { - match: /CREATE_PENDING_REPLY:function\((.{1,2})\){/, - replace: - "CREATE_PENDING_REPLY:function($1){$1.shouldMention=$self.shouldMention($1);", - }, - }, + match: /:(\i),shouldMention:!(\i)\.shiftKey/, + replace: ":$1,shouldMention:$self.shouldMention($1,$2.shiftKey)" + } + } ], }); |