aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/noReplyMention.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/noReplyMention.tsx')
-rw-r--r--src/plugins/noReplyMention.tsx54
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)"
+ }
+ }
],
});