From 87e26a2ffcef2c5a48729bcb8569b2275450ec4d Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:01:45 -0400 Subject: [PATCH] More Bug Fixes --- .../findReply/ReplyNavigator.tsx | 9 ++---- src/equicordplugins/findReply/index.tsx | 12 ++++++- src/equicordplugins/findReply/styles.css | 7 +++++ src/equicordplugins/lastActive/index.tsx | 31 +++++++------------ .../limitMiddleClickPaste/index.ts | 18 ++++++++--- .../messageLoggerEnhanced/settings.tsx | 2 +- 6 files changed, 47 insertions(+), 32 deletions(-) diff --git a/src/equicordplugins/findReply/ReplyNavigator.tsx b/src/equicordplugins/findReply/ReplyNavigator.tsx index 1480a98ec..413eb9d72 100644 --- a/src/equicordplugins/findReply/ReplyNavigator.tsx +++ b/src/equicordplugins/findReply/ReplyNavigator.tsx @@ -4,6 +4,8 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import "./styles.css"; + import ErrorBoundary from "@components/ErrorBoundary"; import { ModalCloseButton } from "@utils/modal"; import { Message } from "@vencord/discord-types"; @@ -40,13 +42,6 @@ export default function ReplyNavigator({ replies }: { replies: Message[]; }) {
); diff --git a/src/equicordplugins/findReply/styles.css b/src/equicordplugins/findReply/styles.css index c1438f418..cae65d268 100644 --- a/src/equicordplugins/findReply/styles.css +++ b/src/equicordplugins/findReply/styles.css @@ -6,3 +6,10 @@ align-items: inherit !important; line-height: 0 !important; } + +.vc-findreply-div { + background-color: var(--background-base-lower); + flex-direction: row; + align-items: center; + width: 270px; +} \ No newline at end of file diff --git a/src/equicordplugins/lastActive/index.tsx b/src/equicordplugins/lastActive/index.tsx index 838d57595..9e8333a5e 100644 --- a/src/equicordplugins/lastActive/index.tsx +++ b/src/equicordplugins/lastActive/index.tsx @@ -7,28 +7,18 @@ import { NavContextMenuPatchCallback } from "@api/ContextMenu"; import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; -import { Menu, MessageActions, MessageStore, NavigationRouter, Toasts, UserStore } from "@webpack/common"; +import { Menu, NavigationRouter, RestAPI, Toasts, UserStore } from "@webpack/common"; -async function findLastMessageFromUser(channelId: string, userId: string) { +async function findLastMessageFromUser(guildId: string, channelId: string, userId: string) { try { - const messageCollection = MessageStore.getMessages(channelId); - let messages = messageCollection?.toArray() || []; - let userMessage = messages.filter(m => m?.author?.id === userId).pop(); - if (userMessage) return userMessage.id; - try { - await MessageActions.fetchMessages({ - channelId: channelId, - limit: 50 - }); + const res = await RestAPI.get({ + url: `/guilds/${guildId}/messages/search?author_id=${userId}&channel_id=${channelId}&sort_by=timestamp&sort_order=desc&offset=0` + }); - const updatedCollection = MessageStore.getMessages(channelId); - messages = updatedCollection?.toArray() || []; - userMessage = messages.filter(m => m?.author?.id === userId).pop(); + const allMessages = res.body.messages?.flat() || []; + const newestMessage = allMessages.find(msg => msg && msg.id); - if (userMessage) return userMessage.id; - } catch (fetchError) { - console.error("Error fetching messages:", fetchError); - } + if (newestMessage) return newestMessage.id; Toasts.show({ type: Toasts.Type.FAILURE, @@ -46,6 +36,7 @@ async function findLastMessageFromUser(channelId: string, userId: string) { return null; } } + async function jumpToLastActive(channel: any, targetUserId?: string) { try { if (!channel) { @@ -66,7 +57,7 @@ async function jumpToLastActive(channel: any, targetUserId?: string) { const currentUser = UserStore.getCurrentUser(); userId = currentUser.id; } - const messageId = await findLastMessageFromUser(channelId, userId); + const messageId = await findLastMessageFromUser(guildId, channelId, userId); if (messageId) { const url = `/channels/${guildId}/${channelId}/${messageId}`; NavigationRouter.transitionTo(url); @@ -106,6 +97,7 @@ const UserContextMenuPatch: NavContextMenuPatchCallback = (children, { user, cha /> ); }; + export function UserLastActiveIcon() { return ( ); } + export default definePlugin({ name: "LastActive", description: "A plugin to jump to last active message from yourself or another user in a channel/server.", diff --git a/src/equicordplugins/limitMiddleClickPaste/index.ts b/src/equicordplugins/limitMiddleClickPaste/index.ts index 6e9c63522..b1a9cb70e 100644 --- a/src/equicordplugins/limitMiddleClickPaste/index.ts +++ b/src/equicordplugins/limitMiddleClickPaste/index.ts @@ -34,6 +34,10 @@ const settings = definePluginSettings({ { label: "Only when clicking on a text box", value: "direct" + }, + { + label: "Never", + value: "never" } ] }, @@ -87,16 +91,22 @@ function blockPastePropogation(e: ClipboardEvent) { function disablePasteOnMousedown(e: MouseEvent) { if (e.button !== 1) return; - let testEl; + let testEl: HTMLElement | null = null; + switch (settings.store.limitTo) { case "active": - testEl = document.activeElement; + testEl = document.activeElement as HTMLElement; break; case "direct": - testEl = e.target; + testEl = e.target as HTMLElement; + break; + case "never": + testEl = null; break; } - if (maybeEditable(testEl as HTMLElement | null)) return; + + if (settings.store.limitTo !== "never" && maybeEditable(testEl)) return; + window.clearTimeout(timeoutID); pasteDisabled = true; timeoutID = window.setTimeout(() => { diff --git a/src/equicordplugins/messageLoggerEnhanced/settings.tsx b/src/equicordplugins/messageLoggerEnhanced/settings.tsx index 4ede6d099..fb6153ba2 100644 --- a/src/equicordplugins/messageLoggerEnhanced/settings.tsx +++ b/src/equicordplugins/messageLoggerEnhanced/settings.tsx @@ -101,7 +101,7 @@ export const settings = definePluginSettings({ permanentlyRemoveLogByDefault: { default: false, type: OptionType.BOOLEAN, - description: "Vencord's base MessageLogger remove log button wiil delete logs permanently", + description: "Vencord's base MessageLogger remove log button will delete logs permanently", }, ShowLogsButton: {