diff --git a/src/plugins/settings/SettingsConstants.ts b/src/plugins/settings/SettingsConstants.ts
index a9f4d7e..8cba260 100644
--- a/src/plugins/settings/SettingsConstants.ts
+++ b/src/plugins/settings/SettingsConstants.ts
@@ -14,10 +14,7 @@ export const MobileSetting = {
REACT_NATIVE_VERSION: 'REACT_NATIVE_VERSION',
HERMES_VERSION: 'HERMES_VERSION',
- CALL_GARBAGE_COLLECTOR: 'CALL_GARBAGE_COLLECTOR',
EVALUATE_JAVASCRIPT: 'EVALUATE_JAVASCRIPT',
- EVALUATE_JAVASCRIPT_INSPECT_DEPTH: 'EVALUATE_JAVASCRIPT_INSPECT_DEPTH',
- EVALUATE_JAVASCRIPT_AWAIT_RESULT: 'EVALUATE_JAVASCRIPT_AWAIT_RESULT',
REVENGE_NOT_IMPLEMENTED: 'REVENGE_NOT_IMPLEMENTED',
} as const
@@ -29,5 +26,3 @@ export const UserSettingsSections = {
[MobileSetting.REVENGE_FONTS]: 'Revenge Fonts',
[MobileSetting.REVENGE_DEVELOPER]: 'Revenge Developer',
} as const
-
-export const AlwaysHidden = () => false
diff --git a/src/plugins/settings/definitions/CallGarbageCollectorSetting.tsx b/src/plugins/settings/definitions/CallGarbageCollectorSetting.tsx
deleted file mode 100644
index 84e06fe..0000000
--- a/src/plugins/settings/definitions/CallGarbageCollectorSetting.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { React } from '@revenge-mod/react'
-
-import AssetIcon from '../components/icons/AssetIcon'
-
-import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
-
-const CallGarbageCollectorSetting: SettingsItem = {
- parent: null,
- IconComponent: () => ,
- title: () => 'Call Garbage Collector',
- useDescription: () => 'Call the garbage collector manually.',
- onPress: gc,
- type: 'pressable',
-}
-
-export default CallGarbageCollectorSetting
diff --git a/src/plugins/settings/definitions/RevengeFontsSetting.tsx b/src/plugins/settings/definitions/RevengeFontsSetting.tsx
index df57ebd..ec4dbad 100644
--- a/src/plugins/settings/definitions/RevengeFontsSetting.tsx
+++ b/src/plugins/settings/definitions/RevengeFontsSetting.tsx
@@ -1,4 +1,4 @@
-import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
+import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
import AssetIcon from '../components/icons/AssetIcon'
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
@@ -8,7 +8,6 @@ const RevengeFontsSetting: SettingsItem = {
type: 'route',
IconComponent: () => ,
title: () => 'Fonts',
- usePredicate: AlwaysHidden,
screen: {
route: UserSettingsSections[MobileSetting.REVENGE_PLUGINS],
getComponent: () => require('../screens/RevengePluginsSettingScreen').default,
diff --git a/src/plugins/settings/definitions/RevengePluginsSetting.tsx b/src/plugins/settings/definitions/RevengePluginsSetting.tsx
index 9fe6335..bb88c35 100644
--- a/src/plugins/settings/definitions/RevengePluginsSetting.tsx
+++ b/src/plugins/settings/definitions/RevengePluginsSetting.tsx
@@ -1,6 +1,6 @@
import { getEnabledPluginsCount } from '@revenge-mod/plugins/_'
-import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
+import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
import AssetIcon from '../components/icons/AssetIcon'
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
@@ -11,7 +11,6 @@ const RevengePluginsSetting: SettingsItem = {
IconComponent: () => ,
title: () => 'Plugins',
useTrailing: () => `${getEnabledPluginsCount()} enabled`,
- usePredicate: AlwaysHidden,
screen: {
route: UserSettingsSections[MobileSetting.REVENGE_PLUGINS],
getComponent: () => require('../screens/RevengePluginsSettingScreen').default,
diff --git a/src/plugins/settings/definitions/RevengeThemesSetting.tsx b/src/plugins/settings/definitions/RevengeThemesSetting.tsx
index 3740231..6c98778 100644
--- a/src/plugins/settings/definitions/RevengeThemesSetting.tsx
+++ b/src/plugins/settings/definitions/RevengeThemesSetting.tsx
@@ -1,4 +1,4 @@
-import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
+import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
import AssetIcon from '../components/icons/AssetIcon'
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
@@ -8,7 +8,6 @@ const RevengeThemesSetting: SettingsItem = {
type: 'route',
IconComponent: () => ,
title: () => 'Themes',
- usePredicate: AlwaysHidden,
screen: {
route: UserSettingsSections[MobileSetting.REVENGE_THEMES],
getComponent: () => require('../screens/RevengeThemesSettingScreen').default,
diff --git a/src/plugins/settings/index.ts b/src/plugins/settings/index.ts
index db7ea26..256d1c8 100644
--- a/src/plugins/settings/index.ts
+++ b/src/plugins/settings/index.ts
@@ -4,30 +4,13 @@ import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
import { waitForModules } from '@revenge-mod/modules/finders'
import { byName, byProps } from '@revenge-mod/modules/finders/filters'
-import { registerSettingsItem, registerSettingsSection, type SettingsItem } from '@revenge-mod/discord/ui/settings'
import { _suiData } from '@revenge-mod/discord/_/ui/settings'
import { after } from '@revenge-mod/patcher'
-import { MobileSetting } from './SettingsConstants'
-
-import RevengeSetting from './definitions/RevengeSetting'
-import RevengePluginsSetting from './definitions/RevengePluginsSetting'
-import RevengeThemesSetting from './definitions/RevengeThemesSetting'
-import RevengeFontsSetting from './definitions/RevengeFontsSetting'
-import RevengeDeveloperSetting from './definitions/RevengeDeveloperSetting'
-import ReactVersionSetting from './definitions/ReactVersionSetting'
-import ReactNativeVersionSetting from './definitions/ReactNativeVersionSetting'
-import RevengeVersionSetting from './definitions/RevengeVersionSetting'
-import HermesVersionSetting from './definitions/HermesVersionSetting'
-import CallGarbageCollectorSetting from './definitions/CallGarbageCollectorSetting'
-import RevengeNotImplementedSetting from './definitions/RevengeNotImplementedSetting'
-import EvaluateJavaScriptSetting from './definitions/EvaluateJavaScriptSetting'
-
+import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
import type { FC } from 'react'
-export let pluginApi: PluginApi
-
registerPlugin(
{
id: 'revenge.settings',
@@ -40,36 +23,11 @@ registerPlugin(
start(api) {
pluginApi = api
- for (const [key, setting] of [
- [MobileSetting.REVENGE, RevengeSetting],
- [MobileSetting.REVENGE_PLUGINS, RevengePluginsSetting],
- [MobileSetting.REVENGE_THEMES, RevengeThemesSetting],
- [MobileSetting.REVENGE_FONTS, RevengeFontsSetting],
- [MobileSetting.REVENGE_DEVELOPER, RevengeDeveloperSetting],
- [MobileSetting.REVENGE_VERSION, RevengeVersionSetting],
- [MobileSetting.REACT_VERSION, ReactVersionSetting],
- [MobileSetting.REACT_NATIVE_VERSION, ReactNativeVersionSetting],
- [MobileSetting.HERMES_VERSION, HermesVersionSetting],
- [MobileSetting.CALL_GARBAGE_COLLECTOR, CallGarbageCollectorSetting],
- [MobileSetting.EVALUATE_JAVASCRIPT, EvaluateJavaScriptSetting],
- [MobileSetting.REVENGE_NOT_IMPLEMENTED, RevengeNotImplementedSetting],
- ] as Array<[string, SettingsItem]>)
- registerSettingsItem(key, setting)
-
- registerSettingsSection('REVENGE', {
- label: 'Revenge',
- settings: [
- MobileSetting.REVENGE,
- MobileSetting.REVENGE_PLUGINS,
- MobileSetting.REVENGE_THEMES,
- MobileSetting.REVENGE_FONTS,
- MobileSetting.REVENGE_DEVELOPER,
- ],
- })
-
const unsubForRendererConfig = waitForModules(byProps('SETTING_RENDERER_CONFIG'), (_, exports) => {
unsubForRendererConfig()
+ require('./register')
+
const SettingRendererConfig = exports as {
SETTING_RENDERER_CONFIG: Record
}
@@ -86,10 +44,10 @@ registerPlugin(
})
})
- const unsub = waitForModules(
+ const unsubForSettingsOverviewScreen = waitForModules(
byName('SettingsOverviewScreen'),
(_, exports) => {
- unsub()
+ unsubForSettingsOverviewScreen()
after(exports as { default: FC }, 'default', tree => {
const sections = (tree as Extract).props.sections as Array<{
@@ -127,3 +85,6 @@ registerPlugin(
PluginFlags.Enabled,
InternalPluginFlags.Internal | InternalPluginFlags.Essential,
)
+
+// Expose to EvaluateJavaScriptSetting
+export let pluginApi: PluginApi
diff --git a/src/plugins/settings/register.ts b/src/plugins/settings/register.ts
new file mode 100644
index 0000000..28c5dd8
--- /dev/null
+++ b/src/plugins/settings/register.ts
@@ -0,0 +1,40 @@
+import { registerSettingsItems, registerSettingsSection } from '@revenge-mod/discord/ui/settings'
+
+import { MobileSetting } from './SettingsConstants'
+
+import RevengeSetting from './definitions/RevengeSetting'
+// import RevengePluginsSetting from './definitions/RevengePluginsSetting'
+// import RevengeThemesSetting from './definitions/RevengeThemesSetting'
+// import RevengeFontsSetting from './definitions/RevengeFontsSetting'
+import RevengeDeveloperSetting from './definitions/RevengeDeveloperSetting'
+import ReactVersionSetting from './definitions/ReactVersionSetting'
+import ReactNativeVersionSetting from './definitions/ReactNativeVersionSetting'
+import RevengeVersionSetting from './definitions/RevengeVersionSetting'
+import HermesVersionSetting from './definitions/HermesVersionSetting'
+import RevengeNotImplementedSetting from './definitions/RevengeNotImplementedSetting'
+import EvaluateJavaScriptSetting from './definitions/EvaluateJavaScriptSetting'
+
+registerSettingsItems({
+ [MobileSetting.REVENGE]: RevengeSetting,
+ // [MobileSetting.REVENGE_PLUGINS]: RevengePluginsSetting,
+ // [MobileSetting.REVENGE_THEMES]: RevengeThemesSetting,
+ // [MobileSetting.REVENGE_FONTS]: RevengeFontsSetting,
+ [MobileSetting.REVENGE_DEVELOPER]: RevengeDeveloperSetting,
+ [MobileSetting.REVENGE_VERSION]: RevengeVersionSetting,
+ [MobileSetting.REACT_VERSION]: ReactVersionSetting,
+ [MobileSetting.REACT_NATIVE_VERSION]: ReactNativeVersionSetting,
+ [MobileSetting.HERMES_VERSION]: HermesVersionSetting,
+ [MobileSetting.EVALUATE_JAVASCRIPT]: EvaluateJavaScriptSetting,
+ [MobileSetting.REVENGE_NOT_IMPLEMENTED]: RevengeNotImplementedSetting,
+})
+
+registerSettingsSection('REVENGE', {
+ label: 'Revenge',
+ settings: [
+ MobileSetting.REVENGE,
+ // MobileSetting.REVENGE_PLUGINS,
+ // MobileSetting.REVENGE_THEMES,
+ // MobileSetting.REVENGE_FONTS,
+ MobileSetting.REVENGE_DEVELOPER,
+ ],
+})
diff --git a/src/plugins/settings/screens/RevengeDeveloperSettingScreen.tsx b/src/plugins/settings/screens/RevengeDeveloperSettingScreen.tsx
index 044e7ef..5e9a737 100644
--- a/src/plugins/settings/screens/RevengeDeveloperSettingScreen.tsx
+++ b/src/plugins/settings/screens/RevengeDeveloperSettingScreen.tsx
@@ -12,7 +12,7 @@ export default function RevengeDeveloperSettingScreen() {
},
{
label: 'Tools',
- settings: [MobileSetting.EVALUATE_JAVASCRIPT, MobileSetting.CALL_GARBAGE_COLLECTOR],
+ settings: [MobileSetting.EVALUATE_JAVASCRIPT],
},
]}
/>
diff --git a/src/plugins/settings/screens/RevengePluginsSettingScreen.tsx b/src/plugins/settings/screens/RevengePluginsSettingScreen.tsx
index ad2e7f2..e326f98 100644
--- a/src/plugins/settings/screens/RevengePluginsSettingScreen.tsx
+++ b/src/plugins/settings/screens/RevengePluginsSettingScreen.tsx
@@ -2,7 +2,7 @@ import { SettingListRenderer } from '@revenge-mod/discord/ui/settings'
import { MobileSetting } from '../SettingsConstants'
-export default function RevengeSettingScreen() {
+export default function RevengePluginsSettingScreen() {
return (