diff --git a/package.json b/package.json
index 65d97f2e0..0fdda2659 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,7 @@
"stylelint": "^16.8.1",
"stylelint-config-standard": "^36.0.1",
"ts-patch": "^3.2.1",
+ "ts-pattern": "^5.3.1",
"tsx": "^4.16.5",
"type-fest": "^4.23.0",
"typescript": "^5.5.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9567475fb..eaa6b537c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -116,6 +116,9 @@ importers:
ts-patch:
specifier: ^3.2.1
version: 3.2.1
+ ts-pattern:
+ specifier: ^5.3.1
+ version: 5.3.1
tsx:
specifier: ^4.16.5
version: 4.16.5
@@ -2524,6 +2527,9 @@ packages:
resolution: {integrity: sha512-hlR43v+GUIUy8/ZGFP1DquEqPh7PFKQdDMTAmYt671kCCA6AkDQMoeFaFmZ7ObPLYOmpMgyKUqL1C+coFMf30w==}
hasBin: true
+ ts-pattern@5.3.1:
+ resolution: {integrity: sha512-1RUMKa8jYQdNfmnK4jyzBK3/PS/tnjcZ1CW0v1vWDeYe5RBklc/nquw03MEoB66hVBm4BnlCfmOqDVxHyT1DpA==}
+
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
@@ -5158,6 +5164,8 @@ snapshots:
semver: 7.6.3
strip-ansi: 6.0.1
+ ts-pattern@5.3.1: {}
+
tsconfig-paths@3.15.0:
dependencies:
'@types/json5': 0.0.29
diff --git a/src/plugins/_core/settings.tsx b/src/plugins/_core/settings.tsx
index 3cc020836..be220db1a 100644
--- a/src/plugins/_core/settings.tsx
+++ b/src/plugins/_core/settings.tsx
@@ -64,7 +64,7 @@ export default definePlugin({
replace: (_, sectionTypes, commaOrSemi, elements, element) => `${commaOrSemi} $self.addSettings(${elements}, ${element}, ${sectionTypes}) ${commaOrSemi}`
},
{
- match: /({(?=.+?function (\i).{0,120}(\i)=\i\.useMemo.{0,30}return \i\.useMemo\(\(\)=>\i\(\3).+?function\(\){return )\2(?=})/,
+ match: /({(?=.+?function (\i).{0,120}(\i)=\i\.useMemo.{0,60}return \i\.useMemo\(\(\)=>\i\(\3).+?function\(\){return )\2(?=})/,
replace: (_, rest, settingsHook) => `${rest}$self.wrapSettingsHook(${settingsHook})`
}
]
diff --git a/src/plugins/alwaysExpandRoles/README.md b/src/plugins/alwaysExpandRoles/README.md
new file mode 100644
index 000000000..344268cbf
--- /dev/null
+++ b/src/plugins/alwaysExpandRoles/README.md
@@ -0,0 +1,3 @@
+# Always Expand Roles
+
+Always expands the role list in profile popouts
diff --git a/src/plugins/alwaysExpandRoles/index.ts b/src/plugins/alwaysExpandRoles/index.ts
new file mode 100644
index 000000000..1c20b9777
--- /dev/null
+++ b/src/plugins/alwaysExpandRoles/index.ts
@@ -0,0 +1,37 @@
+/*
+ * Vencord, a modification for Discord's desktop app
+ * Copyright (c) 2023 Vendicated and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+*/
+
+import { migratePluginSettings } from "@api/Settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+
+migratePluginSettings("AlwaysExpandRoles", "ShowAllRoles");
+export default definePlugin({
+ name: "AlwaysExpandRoles",
+ description: "Always expands the role list in profile popouts",
+ authors: [Devs.surgedevs],
+ patches: [
+ {
+ find: 'action:"EXPAND_ROLES"',
+ replacement: {
+ match: /(roles:\i(?=.+?(\i)\(!0\)[,;]\i\({action:"EXPAND_ROLES"}\)).+?\[\i,\2\]=\i\.useState\()!1\)/,
+ replace: (_, rest, setExpandedRoles) => `${rest}!0)`
+ }
+ }
+ ]
+});
diff --git a/src/plugins/consoleJanitor/index.ts b/src/plugins/consoleJanitor/index.ts
index dfb59957d..e847c4124 100644
--- a/src/plugins/consoleJanitor/index.ts
+++ b/src/plugins/consoleJanitor/index.ts
@@ -60,13 +60,6 @@ export default definePlugin({
replace: ""
}
},
- {
- find: "notosans-400-normalitalic",
- replacement: {
- match: /,"notosans-.+?"/g,
- replace: ""
- }
- },
{
find: 'console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");',
all: true,
diff --git a/src/plugins/ignoreActivities/index.tsx b/src/plugins/ignoreActivities/index.tsx
index bab69d89b..9e6c21bdd 100644
--- a/src/plugins/ignoreActivities/index.tsx
+++ b/src/plugins/ignoreActivities/index.tsx
@@ -26,6 +26,11 @@ interface IgnoredActivity {
type: ActivitiesTypes;
}
+const enum FilterMode {
+ Whitelist,
+ Blacklist
+}
+
const RunningGameStore = findStoreLazy("RunningGameStore");
const ShowCurrentGame = getUserSettingLazy("status", "showCurrentGame")!;
@@ -70,14 +75,17 @@ function handleActivityToggle(e: React.MouseEvent
if (ignoredActivityIndex === -1) settings.store.ignoredActivities = getIgnoredActivities().concat(activity);
else settings.store.ignoredActivities = getIgnoredActivities().filter((_, index) => index !== ignoredActivityIndex);
- // Trigger activities recalculation
+ recalculateActivities();
+}
+
+function recalculateActivities() {
ShowCurrentGame.updateSetting(old => old);
}
function ImportCustomRPCComponent() {
return (
- Import the application id of the CustomRPC plugin to the allowed list
+ Import the application id of the CustomRPC plugin to the filter list