From 65607aa5d97539ed02a5e2fedeb29fc22d9b7200 Mon Sep 17 00:00:00 2001 From: F53 Date: Fri, 23 Aug 2024 19:52:24 -0600 Subject: [PATCH 1/5] Add option to hide replies to messages made by users you've blocked --- src/plugins/noBlockedMessages/index.ts | 31 +++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index 1ea5b5296..b491d59a0 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -21,6 +21,7 @@ import { Devs } from "@utils/constants"; import { Logger } from "@utils/Logger"; import definePlugin, { OptionType } from "@utils/types"; import { findByPropsLazy } from "@webpack"; +import { MessageStore } from "@webpack/common"; import { Message } from "discord-types/general"; const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked"); @@ -48,10 +49,17 @@ export default definePlugin({ replacement: [ { match: /(?<=MESSAGE_CREATE:function\((\i)\){)/, - replace: (_, props) => `if($self.isBlocked(${props}.message))return;` + replace: (_, props) => `if($self.isBlocked(${props}.message)||$self.isBlocked(${props}.message.referenced_message))return;` } ] - })) + })), + { + find: ".messageListItem", + replacement: { + match: /(?<=\i=)(?=\(0,(\i)\.jsx)/, + replace: "!$self.isReplyToBlocked(arguments[0].message)&&" + } + } ], options: { ignoreBlockedMessages: { @@ -60,9 +68,26 @@ export default definePlugin({ default: false, restartNeeded: true, }, + hideRepliesToBlockedMessages: { + description: "Hide replies to messages made by users you've blocked", + type: OptionType.BOOLEAN, + default: false, + restartNeeded: false, + } }, - isBlocked(message: Message) { + isReplyToBlocked(message: Message) { + if (!Settings.plugins.NoBlockedMessages.hideRepliesToBlockedMessages) + return false; + + const { messageReference } = message; + if (!messageReference) return false; + const replyMessage = MessageStore.getMessage(messageReference.channel_id, messageReference.message_id); + return this.isBlocked(replyMessage); + }, + + isBlocked(message: Message | undefined) { + if (!message) return false; try { return RelationshipStore.isBlocked(message.author.id); } catch (e) { From b5084ed1bb32f518b01f052465681ab82a34f1c9 Mon Sep 17 00:00:00 2001 From: F53 Date: Fri, 23 Aug 2024 19:56:31 -0600 Subject: [PATCH 2/5] add self to NoBlockedMessages devs --- src/plugins/noBlockedMessages/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index b491d59a0..1c017b618 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -29,7 +29,7 @@ const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked"); export default definePlugin({ name: "NoBlockedMessages", description: "Hides all blocked messages from chat completely.", - authors: [Devs.rushii, Devs.Samu], + authors: [Devs.rushii, Devs.Samu, Devs.F53], patches: [ { find: "Messages.BLOCKED_MESSAGES_HIDE", From 10c5161870db051d54dcb39ae01851128fe1cda0 Mon Sep 17 00:00:00 2001 From: F53 Date: Fri, 23 Aug 2024 19:58:58 -0600 Subject: [PATCH 3/5] fix new messages ignoring setting --- src/plugins/noBlockedMessages/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index 1c017b618..8931883e4 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -49,7 +49,7 @@ export default definePlugin({ replacement: [ { match: /(?<=MESSAGE_CREATE:function\((\i)\){)/, - replace: (_, props) => `if($self.isBlocked(${props}.message)||$self.isBlocked(${props}.message.referenced_message))return;` + replace: (_, props) => `if($self.isBlocked(${props}.message)||$self.isReplyToBlocked(${props}.message))return;` } ] })), From 194eca3b555f4294626a224cb11b8f20c4b64bec Mon Sep 17 00:00:00 2001 From: CodeF53 <37855219+CodeF53@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:49:46 -0600 Subject: [PATCH 4/5] Update src/plugins/noBlockedMessages/index.ts Co-authored-by: v --- src/plugins/noBlockedMessages/index.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index 8931883e4..aca24b768 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -77,13 +77,18 @@ export default definePlugin({ }, isReplyToBlocked(message: Message) { - if (!Settings.plugins.NoBlockedMessages.hideRepliesToBlockedMessages) + if (!Settings.plugins.NoBlockedMessages.hideRepliesToBlockedMessages || !message) return false; - const { messageReference } = message; - if (!messageReference) return false; - const replyMessage = MessageStore.getMessage(messageReference.channel_id, messageReference.message_id); - return this.isBlocked(replyMessage); + try { + const { messageReference } = message; + if (!messageReference) return false; + + const replyMessage = MessageStore.getMessage(messageReference.channel_id, messageReference.message_id); + return this.isBlocked(replyMessage); + } catch (e) { + new Logger("NoBlockedMessages").error("Failed to check if user is blocked:", e); + } }, isBlocked(message: Message | undefined) { From 53192c42f59910d84c041b9e7bc24f11cc7e8dc6 Mon Sep 17 00:00:00 2001 From: F53 Date: Fri, 6 Sep 2024 11:51:08 -0600 Subject: [PATCH 5/5] fix whitespace issues from Veeview --- src/plugins/noBlockedMessages/index.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index aca24b768..aa6cd7548 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -80,15 +80,15 @@ export default definePlugin({ if (!Settings.plugins.NoBlockedMessages.hideRepliesToBlockedMessages || !message) return false; - try { - const { messageReference } = message; - if (!messageReference) return false; - - const replyMessage = MessageStore.getMessage(messageReference.channel_id, messageReference.message_id); - return this.isBlocked(replyMessage); - } catch (e) { + try { + const { messageReference } = message; + if (!messageReference) return false; + + const replyMessage = MessageStore.getMessage(messageReference.channel_id, messageReference.message_id); + return this.isBlocked(replyMessage); + } catch (e) { new Logger("NoBlockedMessages").error("Failed to check if user is blocked:", e); - } + } }, isBlocked(message: Message | undefined) {