From 3575d24a08f1f0df8d1c2ca6ea97f4e7ce693d28 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 23 Jan 2026 21:38:31 +0100 Subject: [PATCH 1/6] stuff --- src/plugins/betterRoleDot/index.ts | 3 ++- src/plugins/fakeNitro/index.tsx | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/betterRoleDot/index.ts b/src/plugins/betterRoleDot/index.ts index 9928a2a42..274d255a8 100644 --- a/src/plugins/betterRoleDot/index.ts +++ b/src/plugins/betterRoleDot/index.ts @@ -29,7 +29,8 @@ export default definePlugin({ patches: [ { - find: ".dotBorderBase", + // class used in this module is dotBorderBase + find: "0H16C18.2091", replacement: { match: /,viewBox:"0 0 20 20"/, replace: "$&,onClick:()=>$self.copyToClipBoard(arguments[0].color),style:{cursor:'pointer'}", diff --git a/src/plugins/fakeNitro/index.tsx b/src/plugins/fakeNitro/index.tsx index c117d5125..4a943e118 100644 --- a/src/plugins/fakeNitro/index.tsx +++ b/src/plugins/fakeNitro/index.tsx @@ -183,11 +183,11 @@ export default definePlugin({ makeBypassPatches(), // Patch the emoji picker in voice calls to not be bypassed by fake nitro { - find: "emojiItemDisabled]", + find: '.getByName("fork_and_knife")', predicate: () => settings.store.enableEmojiBypass, replacement: { - match: /CHAT/, - replace: "STATUS" + match: ".CHAT", + replace: ".STATUS" } }, { From 6a0eff6e6cc19b32b498a50ab5be2b05b4ccf36f Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 23 Jan 2026 21:46:14 +0100 Subject: [PATCH 2/6] fix MLE --- src/plugins/messageLinkEmbeds/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/messageLinkEmbeds/index.tsx b/src/plugins/messageLinkEmbeds/index.tsx index 7a50c70f5..bc8524305 100644 --- a/src/plugins/messageLinkEmbeds/index.tsx +++ b/src/plugins/messageLinkEmbeds/index.tsx @@ -25,7 +25,7 @@ import { classes } from "@utils/misc"; import { Queue } from "@utils/Queue"; import definePlugin, { OptionType } from "@utils/types"; import { Channel, Message } from "@vencord/discord-types"; -import { findComponentByCodeLazy, findCssClassesLazy } from "@webpack"; +import { findComponentByCodeLazy, findComponentLazy, findCssClassesLazy } from "@webpack"; import { Button, ChannelStore, @@ -47,8 +47,8 @@ const messageCache = new Map(); -const Embed = findComponentByCodeLazy(".inlineMediaEmbed"); -const AutoModEmbed = findComponentByCodeLazy(".withFooter]:", "childrenMessageContent:"); +const Embed = findComponentLazy(m => m.prototype?.renderSuppressButton); +const AutoModEmbed = findComponentByCodeLazy("withFooter", "childrenMessageContent:"); const ChannelMessage = findComponentByCodeLazy("childrenExecutedCommand:", ".hideAccessories"); const SearchResultClasses = findCssClassesLazy("message", "searchResult"); From 8dd799a89c864966eb4dfaa6c50c9e9be8dd778c Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 23 Jan 2026 21:47:06 +0100 Subject: [PATCH 3/6] who cares --- src/plugins/messageLatency/index.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/plugins/messageLatency/index.tsx b/src/plugins/messageLatency/index.tsx index 437ce6440..4c451a1e5 100644 --- a/src/plugins/messageLatency/index.tsx +++ b/src/plugins/messageLatency/index.tsx @@ -10,7 +10,6 @@ import { Devs } from "@utils/constants"; import { isNonNullish } from "@utils/guards"; import definePlugin, { OptionType } from "@utils/types"; import { Message } from "@vencord/discord-types"; -import { findComponentByCodeLazy } from "@webpack"; import { AuthenticationStore, SnowflakeUtils, Tooltip } from "@webpack/common"; type FillValue = ("status-danger" | "status-warning" | "status-positive" | "text-muted"); @@ -26,7 +25,6 @@ interface Diff { } const DISCORD_KT_DELAY = 1471228928; -const HiddenVisually = findComponentByCodeLazy(".hiddenVisually]:"); export default definePlugin({ name: "MessageLatency", @@ -161,13 +159,7 @@ export default definePlugin({ text={text} position="top" > - { - props => <> - {} - {/* Time Out indicator uses this, I think this is for a11y */} - Delayed Message - - } + {props => } ; }, { noop: true }); }, From 1dcf7db52a054606e72c1a4ac2b3e67368e45ccb Mon Sep 17 00:00:00 2001 From: sadan <117494111+sadan4@users.noreply.github.com> Date: Fri, 23 Jan 2026 15:49:00 -0500 Subject: [PATCH 4/6] fix plain folder icon --- src/plugins/plainFolderIcon/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/plainFolderIcon/index.ts b/src/plugins/plainFolderIcon/index.ts index 8eb878962..84390e22e 100644 --- a/src/plugins/plainFolderIcon/index.ts +++ b/src/plugins/plainFolderIcon/index.ts @@ -28,12 +28,17 @@ export default definePlugin({ patches: [ { - find: ".folderPreviewGuildIconError", + find: "#{intl::GUILD_FOLDER_TOOLTIP_A11Y_LABEL}", replacement: [ { // Discord always renders both plain and guild icons folders and uses a css transtion to switch between them - match: /(?<=.folderButtonContent]:(!\i))/, - replace: (_, hasFolderButtonContentClass) => `,"vc-plainFolderIcon-plain":${hasFolderButtonContentClass}` + // let {hovered: h, sorting: s} = props; + // hasFolderButtonContent = h && s; + // ... + // className: cn({[_1]: hasFolderButtonContent, [_2]: !hasFolderButtonContent}), + // children: [!hasFolderButtonContent && ...] + match: /className:\i\(\)\(\{\[\i\.\i\]:(\i),\[\i\.\i\]:!\1(?=.{0,30}children:\[!\i&&)/, + replace: (m, hasFolderButtonContent) => `${m},"vc-plainFolderIcon-plain":${hasFolderButtonContent}` } ] From 26b1fb5157b02f6492ce004f7216ab5b3b7b2ce3 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 23 Jan 2026 21:50:25 +0100 Subject: [PATCH 5/6] fix Decor stuff --- src/plugins/decor/ui/components/DecorSection.tsx | 2 +- src/plugins/decor/ui/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/decor/ui/components/DecorSection.tsx b/src/plugins/decor/ui/components/DecorSection.tsx index 3209b4356..e25c816cb 100644 --- a/src/plugins/decor/ui/components/DecorSection.tsx +++ b/src/plugins/decor/ui/components/DecorSection.tsx @@ -13,7 +13,7 @@ import { openChangeDecorationModal } from "@plugins/decor/ui/modals/ChangeDecora import { findComponentByCodeLazy } from "@webpack"; import { useEffect } from "@webpack/common"; -const CustomizationSection = findComponentByCodeLazy(".customizationSectionBackground"); +const CustomizationSection = findComponentByCodeLazy(".DESCRIPTION", "hasBackground:"); export interface DecorSectionProps { hideTitle?: boolean; diff --git a/src/plugins/decor/ui/index.ts b/src/plugins/decor/ui/index.ts index eeb644b24..a10824c51 100644 --- a/src/plugins/decor/ui/index.ts +++ b/src/plugins/decor/ui/index.ts @@ -11,4 +11,4 @@ export const cl = classNameFactory("vc-decor-"); export const DecorationModalClasses = findCssClassesLazy("modalPreview", "modalCloseButton", "spinner", "modal"); export const requireAvatarDecorationModal = extractAndLoadChunksLazy(["initialSelectedDecoration:", /initialSelectedDecoration:\i,.{0,300}\i\.e\(/]); -export const requireCreateStickerModal = extractAndLoadChunksLazy(["stickerInspected]:"]); +export const requireCreateStickerModal = extractAndLoadChunksLazy([".CREATE_STICKER_MODAL,", "isDisplayingIndividualStickers"]); From e488ae5ce0ad20bee00fc46f99c26bb0d09f81c3 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 23 Jan 2026 21:50:45 +0100 Subject: [PATCH 6/6] this is deprecated anyway --- src/webpack/common/components.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/webpack/common/components.ts b/src/webpack/common/components.ts index d7affc0e6..8fd2d8eef 100644 --- a/src/webpack/common/components.ts +++ b/src/webpack/common/components.ts @@ -50,8 +50,6 @@ export const Button = ButtonCompat; /** @deprecated Use FormSwitch from Vencord */ export const Switch = FormSwitchCompat as never; -/** @deprecated Use Card from Vencord */ -export const Card = waitForComponent("Card", filters.componentByCode(".editable),", ".outline:")); export const Checkbox = waitForComponent("Checkbox", filters.componentByCode('"data-toggleable-component":"checkbox')); export const Tooltip = waitForComponent("Tooltip", m => m.prototype?.shouldShowTooltip && m.prototype.render, TooltipFallback);