- {View}
+
+
);
diff --git a/src/equicordplugins/songLink.desktop/SongLinker.tsx b/src/equicordplugins/songLink.desktop/SongLinker.tsx
index 87a212fb0..1807eee2f 100644
--- a/src/equicordplugins/songLink.desktop/SongLinker.tsx
+++ b/src/equicordplugins/songLink.desktop/SongLinker.tsx
@@ -6,14 +6,12 @@
import { BaseText } from "@components/BaseText";
import { Card } from "@components/Card";
-import { findComponentByCodeLazy } from "@webpack";
+import { HeadphonesIcon } from "@components/Icons";
import { Button, useEffect, useState } from "@webpack/common";
import pl, { Native, settings, SongLinkResult } from ".";
import Providers from "./Providers";
-const HeadphonesIcon = findComponentByCodeLazy("4.1-2.13h1.86A9");
-
export default function SongLinker({ url }: { url: string; }) {
const [songData, setSongData] = useState
();
diff --git a/src/equicordplugins/triviaAI/index.tsx b/src/equicordplugins/triviaAI/index.tsx
index e44b814e8..9eaa4aaf8 100644
--- a/src/equicordplugins/triviaAI/index.tsx
+++ b/src/equicordplugins/triviaAI/index.tsx
@@ -5,19 +5,16 @@
*/
import { findGroupChildrenByChildId, NavContextMenuPatchCallback } from "@api/ContextMenu";
+import { RobotIcon } from "@components/Icons";
import { EquicordDevs } from "@utils/constants";
import { t } from "@utils/translation";
-import definePlugin, { IconComponent } from "@utils/types";
+import definePlugin from "@utils/types";
import { Message } from "@vencord/discord-types";
-import { findComponentByCodeLazy } from "@webpack";
import { ChannelStore, Menu } from "@webpack/common";
import { settings } from "./settings";
import { getPayload, getResponse, handleResponse } from "./utils";
-const RobotIconLazy = findComponentByCodeLazy("14.93-4H15a1 ");
-const RobotIcon: IconComponent = props => ;
-
const messageCtxPatch: NavContextMenuPatchCallback = (children, { message }: { message: Message; }) => {
const payload = getPayload(message);
if (!payload) return;
diff --git a/src/plugins/_api/nicknameIcons.ts b/src/plugins/_api/nicknameIcons.ts
index 8f8b1fa49..a4ac2f593 100644
--- a/src/plugins/_api/nicknameIcons.ts
+++ b/src/plugins/_api/nicknameIcons.ts
@@ -18,7 +18,7 @@ export default definePlugin({
replacement: [
{
match: /(?<=children:\i\}\):\i,)null!=\i/,
- replace: "($&||Vencord.Api.NicknameIcons._renderIcons({userId:arguments[0].user?.id})?.length)"
+ replace: "($&||!!Vencord.Api.NicknameIcons._renderIcons({userId:arguments[0].user?.id})?.length)"
},
{
match: /(?<=shouldUnderlineOnHover:null.{0,300})children:(\i)(?=\}\)\])/,
diff --git a/src/plugins/crashHandler/index.ts b/src/plugins/crashHandler/index.ts
index 0d471c9e3..0006c8f33 100644
--- a/src/plugins/crashHandler/index.ts
+++ b/src/plugins/crashHandler/index.ts
@@ -16,6 +16,7 @@
* along with this program. If not, see .
*/
+import { DataStore } from "@api/index";
import { showNotification } from "@api/Notifications";
import { definePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
@@ -77,6 +78,8 @@ export default definePlugin({
],
handleCrash(_this: any, errorState: any) {
+ DataStore.del("KeepCurrentChannel_previousData");
+
if (IS_DEV) {
try {
if (errorState?.info && "componentStack" in errorState.info) {
diff --git a/src/plugins/permissionsViewer/index.tsx b/src/plugins/permissionsViewer/index.tsx
index 1d809e3e0..c31a794c3 100644
--- a/src/plugins/permissionsViewer/index.tsx
+++ b/src/plugins/permissionsViewer/index.tsx
@@ -36,7 +36,7 @@ import openRolesAndUsersPermissionsModal from "./components/RolesAndUsersPermiss
import UserPermissions from "./components/UserPermissions";
import { getSortedRolesForMember, sortPermissionOverwrites } from "./utils";
-const PopoutClasses = findCssClassesLazy("container", "scroller", "list");
+const PopoutClasses = findCssClassesLazy("container", "popoutRoleDot");
export const enum PermissionsSortOrder {
HighestRole,
diff --git a/src/plugins/reviewDB/components/ReviewModal.tsx b/src/plugins/reviewDB/components/ReviewModal.tsx
index d7c1467d9..8690c85ce 100644
--- a/src/plugins/reviewDB/components/ReviewModal.tsx
+++ b/src/plugins/reviewDB/components/ReviewModal.tsx
@@ -33,7 +33,8 @@ import ReviewComponent from "./ReviewComponent";
import ReviewsView, { ReviewsInputComponent } from "./ReviewsView";
const Paginator = findComponentByCodeLazy>('rel:"prev",children:');
-const requirePaginator = extractAndLoadChunksLazy(['name:"SearchResults"'], new RegExp(`${DefaultExtractAndLoadChunksRegex.source}.{0,30}?name:"SearchResults"`));
+// This matches a massive module with ~230k chars so we need an anchor before to prevent REDOS
+const requirePaginator = extractAndLoadChunksLazy(['name:"SearchResults"'], new RegExp(`name:"StageChannelCall",renderLoader:.+?(?:${DefaultExtractAndLoadChunksRegex.source}).{0,30}?name:"SearchResults"`));
function Modal({ modalProps, modalKey, discordId, name, type }: { modalProps: any; modalKey: string, discordId: string; name: string; type: ReviewType; }) {
const [data, setData] = useState();
diff --git a/src/plugins/showHiddenChannels/index.tsx b/src/plugins/showHiddenChannels/index.tsx
index 90b952163..7801fa971 100644
--- a/src/plugins/showHiddenChannels/index.tsx
+++ b/src/plugins/showHiddenChannels/index.tsx
@@ -241,7 +241,7 @@ export default definePlugin({
},
{
// Make the state of the old version of unreads box not include hidden channels
- find: "ignoreRecents:!0",
+ find: "GUILD_EVENT)}),[",
replacement: {
match: /(?<=\.id\)\))(?=&&\(0,\i\.\i\)\((\i)\))/,
replace: "&&!$self.isHiddenChannel($1)"
diff --git a/src/plugins/superReactionTweaks/index.ts b/src/plugins/superReactionTweaks/index.ts
index 8e500802b..f3f2f676f 100644
--- a/src/plugins/superReactionTweaks/index.ts
+++ b/src/plugins/superReactionTweaks/index.ts
@@ -54,7 +54,7 @@ export default definePlugin({
{
find: ".EMOJI_PICKER_CONSTANTS_EMOJI_CONTAINER_PADDING_HORIZONTAL)",
replacement: {
- match: /(openPopoutType:void 0(?=.+?isBurstReaction:(\i).+?;(\i===\i\.\i.REACTION)).+?\[\2,\i\]=\i\.useState\().+?\)/,
+ match: /(openPopoutType:void 0(?=.+?isBurstReaction:(\i).+?;(\i===\i\.\i\.REACTION)&&\i\.push\().+?\[\2,\i\]=\i\.useState\()!1\)/,
replace: (_, rest, _isBurstReactionVariable, isReactionIntention) => `${rest}$self.shouldSuperReactByDefault&&${isReactionIntention})`
}
}