diff --git a/src/main/patcher.ts b/src/main/patcher.ts
index e858f3fcd..e5b87290d 100644
--- a/src/main/patcher.ts
+++ b/src/main/patcher.ts
@@ -17,7 +17,7 @@
*/
import { onceDefined } from "@shared/onceDefined";
-import electron, { app, BrowserWindowConstructorOptions, Menu, nativeTheme } from "electron";
+import electron, { app, BrowserWindowConstructorOptions, Menu } from "electron";
import { dirname, join } from "path";
import { initIpc } from "./ipcMain";
@@ -100,19 +100,6 @@ if (!IS_VANILLA) {
super(options);
initIpc(this);
-
- // Workaround for https://github.com/electron/electron/issues/43367. Vesktop also has its own workaround
- // @TODO: Remove this when the issue is fixed
- if (IS_DISCORD_DESKTOP) {
- this.webContents.on("devtools-opened", () => {
- if (!nativeTheme.shouldUseDarkColors) return;
-
- nativeTheme.themeSource = "light";
- setTimeout(() => {
- nativeTheme.themeSource = "dark";
- }, 100);
- });
- }
} else super(options);
}
}
diff --git a/src/plugins/betterFolders/index.tsx b/src/plugins/betterFolders/index.tsx
index 6f9b796e8..c43e17110 100644
--- a/src/plugins/betterFolders/index.tsx
+++ b/src/plugins/betterFolders/index.tsx
@@ -185,7 +185,7 @@ export default definePlugin({
{
// Decide if we should render the expanded folder background if we are rendering the Better Folders sidebar
predicate: () => settings.store.showFolderIcon !== FolderIconDisplay.Always,
- match: /(?<=\.wrapper,children:\[)/,
+ match: /(?<=\.isExpanded\),children:\[)/,
replace: "$self.shouldShowFolderIconAndBackground(!!arguments[0]?.isBetterFolders,arguments[0]?.betterFoldersExpandedIds)&&"
},
{
diff --git a/src/plugins/callTimer/index.tsx b/src/plugins/callTimer/index.tsx
index 01b1cb987..e16abc4a1 100644
--- a/src/plugins/callTimer/index.tsx
+++ b/src/plugins/callTimer/index.tsx
@@ -75,7 +75,7 @@ export default definePlugin({
patches: [{
find: "renderConnectionStatus(){",
replacement: {
- match: /(?<=renderConnectionStatus\(\)\{.+\.channel,children:)\i(?=\})/,
+ match: /(?<=renderConnectionStatus\(\){.+\.channel,children:).+?}\):\i(?=}\))/,
replace: "[$&, $self.renderTimer(this.props.channel.id)]"
}
}],
diff --git a/src/plugins/consoleJanitor/index.ts b/src/plugins/consoleJanitor/index.ts
index 2c29bf670..03c30ede4 100644
--- a/src/plugins/consoleJanitor/index.ts
+++ b/src/plugins/consoleJanitor/index.ts
@@ -66,6 +66,13 @@ export default definePlugin({
},
patches: [
+ {
+ find: "https://github.com/highlightjs/highlight.js/issues/2277",
+ replacement: {
+ match: /(?<=&&\()console.log\(`Deprecated.+?`\),/,
+ replace: ""
+ }
+ },
{
find: 'react-spring: The "interpolate" function',
replacement: {
diff --git a/src/plugins/disableCallIdle/index.ts b/src/plugins/disableCallIdle/index.ts
index 82ab56f2c..5a1ac84fe 100644
--- a/src/plugins/disableCallIdle/index.ts
+++ b/src/plugins/disableCallIdle/index.ts
@@ -16,11 +16,9 @@
* along with this program. If not, see .
*/
-import { migratePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
-migratePluginSettings("DisableCallIdle", "DisableDMCallIdle");
export default definePlugin({
name: "DisableCallIdle",
description: "Disables automatically getting kicked from a DM voice call after 3 minutes and being moved to an AFK voice channel.",
diff --git a/src/plugins/newGuildSettings/index.tsx b/src/plugins/newGuildSettings/index.tsx
index 7cfb073fa..e613f7a00 100644
--- a/src/plugins/newGuildSettings/index.tsx
+++ b/src/plugins/newGuildSettings/index.tsx
@@ -20,7 +20,7 @@ import {
findGroupChildrenByChildId,
NavContextMenuPatchCallback
} from "@api/ContextMenu";
-import { definePluginSettings, migratePluginSettings } from "@api/Settings";
+import { definePluginSettings } from "@api/Settings";
import { CogWheel } from "@components/Icons";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType } from "@utils/types";
@@ -115,8 +115,6 @@ function applyDefaultSettings(guildId: string | null) {
}
}
-
-migratePluginSettings("NewGuildSettings", "MuteNewGuild");
export default definePlugin({
name: "NewGuildSettings",
description: "Automatically mute new servers and change various other settings upon joining",
diff --git a/src/plugins/noScreensharePreview/index.ts b/src/plugins/noScreensharePreview/index.ts
index 6ad39a90f..d4bb9c1eb 100644
--- a/src/plugins/noScreensharePreview/index.ts
+++ b/src/plugins/noScreensharePreview/index.ts
@@ -16,7 +16,6 @@
* along with this program. If not, see .
*/
-import { Settings } from "@api/Settings";
import { getUserSettingLazy } from "@api/UserSettings";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
@@ -28,11 +27,16 @@ export default definePlugin({
name: "NoScreensharePreview",
description: "Disables screenshare previews from being sent.",
authors: [Devs.Nuckyz],
+
start() {
if (!DisableStreamPreviews.getSetting()) {
DisableStreamPreviews.updateSetting(true);
}
+ },
- Settings.plugins.NoScreensharePreview.enabled = false;
+ stop() {
+ if (DisableStreamPreviews.getSetting()) {
+ DisableStreamPreviews.updateSetting(false);
+ }
}
});
diff --git a/src/plugins/partyMode/index.ts b/src/plugins/partyMode/index.ts
index c40f2e3c7..f7cddbf97 100644
--- a/src/plugins/partyMode/index.ts
+++ b/src/plugins/partyMode/index.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-import { definePluginSettings, migratePluginSettings } from "@api/Settings";
+import { definePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType, ReporterTestable } from "@utils/types";
import { FluxDispatcher } from "@webpack/common";
@@ -41,7 +41,6 @@ const settings = definePluginSettings({
},
});
-migratePluginSettings("PartyMode", "Party mode 🎉");
export default definePlugin({
name: "PartyMode",
description: "Allows you to use party mode cause the party never ends ✨",
diff --git a/src/plugins/serverInfo/index.tsx b/src/plugins/serverInfo/index.tsx
index a6dd6edf9..2a3f3adf1 100644
--- a/src/plugins/serverInfo/index.tsx
+++ b/src/plugins/serverInfo/index.tsx
@@ -5,7 +5,6 @@
*/
import { findGroupChildrenByChildId, NavContextMenuPatchCallback } from "@api/ContextMenu";
-import { migratePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
import { Menu } from "@webpack/common";
@@ -25,7 +24,6 @@ const Patch: NavContextMenuPatchCallback = (children, { guild }: { guild: Guild;
);
};
-migratePluginSettings("ServerInfo", "ServerProfile"); // what was I thinking with this name lmao
export default definePlugin({
name: "ServerInfo",
description: "Allows you to view info about a server",
diff --git a/src/plugins/showHiddenChannels/index.tsx b/src/plugins/showHiddenChannels/index.tsx
index 6b67aee8b..181a6bc99 100644
--- a/src/plugins/showHiddenChannels/index.tsx
+++ b/src/plugins/showHiddenChannels/index.tsx
@@ -168,7 +168,7 @@ export default definePlugin({
},
// Add the hidden eye icon if the channel is hidden
{
- match: /\.name\),.{0,120}\.children.+?:null(?<=,channel:(\i).+?)/,
+ match: /\.name,{.{0,140}\.children.+?:null(?<=,channel:(\i).+?)/,
replace: (m, channel) => `${m},$self.isHiddenChannel(${channel})?$self.HiddenChannelIcon():null`
},
// Make voice channels also appear as muted if they are muted
diff --git a/src/plugins/showHiddenThings/index.ts b/src/plugins/showHiddenThings/index.ts
index 30edb2470..a5cf81294 100644
--- a/src/plugins/showHiddenThings/index.ts
+++ b/src/plugins/showHiddenThings/index.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-import { definePluginSettings, migratePluginSettings } from "@api/Settings";
+import { definePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType, PluginSettingDef } from "@utils/types";
@@ -35,7 +35,6 @@ const settings = definePluginSettings({
disableDisallowedDiscoveryFilters: opt("Disable filters in Server Discovery search that hide NSFW & disallowed servers."),
});
-migratePluginSettings("ShowHiddenThings", "ShowTimeouts");
export default definePlugin({
name: "ShowHiddenThings",
tags: ["ShowTimeouts", "ShowInvitesPaused", "ShowModView", "DisableDiscoveryFilters"],
diff --git a/src/plugins/typingIndicator/index.tsx b/src/plugins/typingIndicator/index.tsx
index e9e343311..e6a1b3b4f 100644
--- a/src/plugins/typingIndicator/index.tsx
+++ b/src/plugins/typingIndicator/index.tsx
@@ -163,7 +163,7 @@ export default definePlugin({
{
find: "UNREAD_IMPORTANT:",
replacement: {
- match: /\.name\),.{0,120}\.children.+?:null(?<=,channel:(\i).+?)/,
+ match: /\.name,{.{0,140}\.children.+?:null(?<=,channel:(\i).+?)/,
replace: "$&,$self.TypingIndicator($1.id,$1.getGuildId())"
}
},
diff --git a/src/plugins/typingTweaks/index.tsx b/src/plugins/typingTweaks/index.tsx
index e2bbb4bc9..9e6459aba 100644
--- a/src/plugins/typingTweaks/index.tsx
+++ b/src/plugins/typingTweaks/index.tsx
@@ -91,34 +91,31 @@ export default definePlugin({
name: "TypingTweaks",
description: "Show avatars and role colours in the typing indicator",
authors: [Devs.zt],
+ settings,
+
patches: [
- // Style the indicator and add function call to modify the children before rendering
{
- find: "getCooldownTextStyle",
- replacement: {
- match: /(?<=children:\[(\i)\.length>0.{0,200}?"aria-atomic":!0,children:)\i/,
- replace: "$self.mutateChildren(this.props, $1, $&), style: $self.TYPING_TEXT_STYLE"
- }
- },
- // Changes the indicator to keep the user object when creating the list of typing users
- {
- find: "getCooldownTextStyle",
- replacement: {
- match: /(?<=map\(\i=>)\i\.\i\.getName\(\i,this\.props\.channel\.id,(\i)\)/,
- replace: "$1"
- }
- },
- // Adds the alternative formatting for several users typing
- {
- find: "getCooldownTextStyle",
- replacement: {
- match: /(,{a:(\i),b:(\i),c:\i}\):)\i\.\i\.string\(\i\.\i#{intl::SEVERAL_USERS_TYPING}\)(?<=(\i)\.length.+?)/,
- replace: (_, rest, a, b, users) => `${rest}$self.buildSeveralUsers({ a: ${a}, b: ${b}, count: ${users}.length - 2 })`
- },
- predicate: () => settings.store.alternativeFormatting
+ find: "#{intl::THREE_USERS_TYPING}",
+ replacement: [
+ {
+ // Style the indicator and add function call to modify the children before rendering
+ match: /(?<=children:\[(\i)\.length>0.{0,200}?"aria-atomic":!0,children:)\i(?<=guildId:(\i).+?)/,
+ replace: "$self.mutateChildren($2,$1,$&),style:$self.TYPING_TEXT_STYLE"
+ },
+ {
+ // Changes the indicator to keep the user object when creating the list of typing users
+ match: /\.map\((\i)=>\i\.\i\.getName\(\i,\i\.id,\1\)\)/,
+ replace: ""
+ },
+ {
+ // Adds the alternative formatting for several users typing
+ match: /(,{a:(\i),b:(\i),c:\i}\):\i\.length>3&&\(\i=)\i\.\i\.string\(\i\.\i#{intl::SEVERAL_USERS_TYPING}\)(?<=(\i)\.length.+?)/,
+ replace: (_, rest, a, b, users) => `${rest}$self.buildSeveralUsers({ a: ${a}, b: ${b}, count: ${users}.length - 2 })`,
+ predicate: () => settings.store.alternativeFormatting
+ }
+ ]
}
],
- settings,
TYPING_TEXT_STYLE: {
display: "grid",
@@ -128,7 +125,7 @@ export default definePlugin({
buildSeveralUsers,
- mutateChildren(props: any, users: User[], children: any) {
+ mutateChildren(guildId: any, users: User[], children: any) {
try {
if (!Array.isArray(children)) {
return children;
@@ -138,7 +135,7 @@ export default definePlugin({
return children.map(c =>
c.type === "strong" || (typeof c !== "string" && !React.isValidElement(c))
- ?
+ ?
: c
);
} catch (e) {
diff --git a/src/plugins/youtubeAdblock.desktop/index.ts b/src/plugins/youtubeAdblock.desktop/index.ts
index 708b908d9..48f911795 100644
--- a/src/plugins/youtubeAdblock.desktop/index.ts
+++ b/src/plugins/youtubeAdblock.desktop/index.ts
@@ -4,12 +4,10 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
-import { migratePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
// The entire code of this plugin can be found in native.ts
-migratePluginSettings("YoutubeAdblock", "WatchTogetherAdblock");
export default definePlugin({
name: "YoutubeAdblock",
description: "Block ads in YouTube embeds and the WatchTogether activity via AdGuard",