From 32e3007137596c74a9f0f988ec8b4fab8c96d8dc Mon Sep 17 00:00:00 2001 From: Etorix <92535668+EtorixDev@users.noreply.github.com> Date: Tue, 17 Mar 2026 09:23:12 -0700 Subject: [PATCH 1/4] Auto deauth Task In Activity Quests once they finish. (#915) --- src/equicordplugins/questify/index.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/equicordplugins/questify/index.tsx b/src/equicordplugins/questify/index.tsx index 9a1f9c544..7829d7843 100644 --- a/src/equicordplugins/questify/index.tsx +++ b/src/equicordplugins/questify/index.tsx @@ -15,7 +15,7 @@ import { openPluginModal } from "@components/settings"; import { EquicordDevs } from "@utils/constants"; import { copyToClipboard } from "@utils/index"; import definePlugin, { PluginNative, StartAt } from "@utils/types"; -import { onceReady } from "@webpack"; +import { findStoreLazy, onceReady } from "@webpack"; import { ContextMenuApi, Menu, NavigationRouter, RestAPI, useEffect, useState } from "@webpack/common"; import { JSX } from "react"; @@ -23,6 +23,7 @@ import { addIgnoredQuest, addRerenderCallback, autoFetchCompatible, fetchAndAler import { ActiveQuestIntervalsMap, ExcludedQuestMap, GuildlessServerListItem, Quest, QuestIcon, QuestMap, QuestStatus, QuestTaskType, RGB } from "./utils/components"; import { adjustRGB, decimalToRGB, fetchAndDispatchQuests, formatLowerBadge, getFormattedNow, getIgnoredQuestIDs, getQuestProgress, getQuestStatus, getQuestTarget, getQuestTask, isDarkish, leftClick, middleClick, normalizeQuestName, q, QuestifyLogger, questPath, QuestsStore, refreshQuest, reportPlayGameQuestProgress, reportVideoQuestProgress, rightClick, setIgnoredQuestIDs, videoQuestLeeway, waitUntilEnrolled } from "./utils/misc"; +const AuthorizedAppsStore = findStoreLazy("AuthorizedAppsStore"); let initialQuestDataFetched = false; const QuestifyNative = VencordNative.pluginHelpers.Questify as PluginNative; const patchedMobileQuests = new Set(); @@ -852,7 +853,6 @@ async function startAchievementActivityProgressTracking(quest: Quest, target: { if (!result.success) { const errorReason = result.error || "An error occurred while completing the Quest."; QuestifyLogger.error(`[${getFormattedNow()}] Failed to complete Quest ${questName}:`, errorReason); - return; } else { QuestifyLogger.info(`[${getFormattedNow()}] Quest ${questName} completed.`); @@ -865,6 +865,20 @@ async function startAchievementActivityProgressTracking(quest: Quest, target: { }); } } + + try { + const deauthToken = AuthorizedAppsStore.getNewestTokenForApplication(appID)?.id; + + if (!deauthToken) { + throw new Error("Deauthorization token not found."); + } + + await RestAPI.del({ + url: `/oauth2/tokens/${deauthToken}/`, + }); + } catch (error) { + QuestifyLogger.error(`[${getFormattedNow()}] Failed to deauthorize application for Quest ${questName}:`, error); + } } function canQuestAutoComplete(quest: Quest): boolean { From eee741332a9302b3ff3063c14dc5a12c55f94cf4 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:18:01 -0400 Subject: [PATCH 2/4] Fix Themeing for Discord Overlay --- src/api/Themes.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/api/Themes.ts b/src/api/Themes.ts index 725ad5b86..620b778cf 100644 --- a/src/api/Themes.ts +++ b/src/api/Themes.ts @@ -21,7 +21,7 @@ import { createAndAppendStyle } from "@utils/css"; import { ThemeStore } from "@vencord/discord-types"; import { PopoutWindowStore } from "@webpack/common"; -import { userStyleRootNode, vencordRootNode } from "./Styles"; +import { coreStyleRootNode, managedStyleRootNode, userStyleRootNode, vencordRootNode } from "./Styles"; let style: HTMLStyleElement; let themesStyle: HTMLStyleElement; @@ -83,14 +83,23 @@ async function initThemes() { function applyToPopout(popoutWindow: Window | undefined, key: string) { if (!popoutWindow?.document) return; - // skip game overlay cuz it needs to stay transparent, themes broke it - if (key === "DISCORD_OutOfProcessOverlay") return; const doc = popoutWindow.document; doc.querySelector("vencord-root")?.remove(); - doc.documentElement.appendChild(vencordRootNode.cloneNode(true)); + const clonedRoot = vencordRootNode.cloneNode(false) as HTMLElement; + + clonedRoot.append( + coreStyleRootNode.cloneNode(true), + managedStyleRootNode.cloneNode(true) + ); + + if (key !== "DISCORD_OutOfProcessOverlay") { + clonedRoot.append(userStyleRootNode.cloneNode(true)); + } + + doc.documentElement.appendChild(clonedRoot); } function updatePopoutWindows() { From 4d04541f3d9365b728eebd3ad5a9e517de6b3e10 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Tue, 17 Mar 2026 22:34:42 -0400 Subject: [PATCH 3/4] Remove Settings Patch: It seems gone --- src/plugins/_core/settings.tsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/plugins/_core/settings.tsx b/src/plugins/_core/settings.tsx index 371042cd9..f9ebe11d0 100644 --- a/src/plugins/_core/settings.tsx +++ b/src/plugins/_core/settings.tsx @@ -165,13 +165,6 @@ export default definePlugin({ match: /(\i)\.buildLayout\(\)(?=\.map)/, replace: "$self.buildLayout($1)" } - }, - { - find: "getWebUserSettingFromSection", - replacement: { - match: /new Map\(\[(?=\[.{0,10}\.ACCOUNT,.{0,10}\.ACCOUNT_PANEL)/, - replace: "new Map([...$self.getSettingsSectionMappings()," - } } ], From 3f9b44a346d4740d9351ffae81b9160c268700e4 Mon Sep 17 00:00:00 2001 From: panbread <93918332+pnbread@users.noreply.github.com> Date: Wed, 18 Mar 2026 14:46:35 +0400 Subject: [PATCH 4/4] fix(serverListIndicators:) remove a character to fix styling (#916) --- src/plugins/serverListIndicators/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/serverListIndicators/index.tsx b/src/plugins/serverListIndicators/index.tsx index da4538257..ed71c1f0a 100644 --- a/src/plugins/serverListIndicators/index.tsx +++ b/src/plugins/serverListIndicators/index.tsx @@ -168,7 +168,7 @@ export default definePlugin({ {({ onMouseEnter, onMouseLeave }) => (
{!!(mode & IndicatorType.FRIEND) && }