revenge-bundle-next/src/plugins/start/developer-settings/index.ts

62 lines
1.6 KiB
TypeScript
Raw Normal View History

2025-06-03 16:24:58 +07:00
import {
onSettingsModulesLoaded,
refreshSettingsOverviewScreen,
2025-06-03 16:24:58 +07:00
} from '@revenge-mod/discord/modules/settings'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
2025-05-19 01:43:41 +07:00
import { PluginFlags } from '@revenge-mod/plugins/constants'
import type { PluginApi } from '@revenge-mod/plugins/types'
interface Storage {
devtools: {
address: string
autoConnect: boolean
}
}
const defaultStorage: Storage = {
devtools: {
address: 'localhost:8097',
autoConnect: false,
},
}
registerPlugin<{ storage: Storage }>(
{
id: 'revenge.settings.developer',
name: 'Developer Settings',
description: 'Developer settings menus for Revenge',
author: 'Revenge',
icon: 'WrenchIcon',
},
{
storage: {
load: true,
default: defaultStorage,
},
start(api_) {
api = api_
onSettingsModulesLoaded(() => {
require('./utils').register()
})
if (api_.plugin.flags & PluginFlags.EnabledLate)
refreshSettingsOverviewScreen()
Promise.all([import('./react-devtools'), api.storage.get()]).then(
([rdt, settings]) => {
2025-06-09 23:35:23 +07:00
if (settings.devtools.autoConnect) rdt.connect()
},
)
},
2025-07-18 02:02:34 +07:00
stop() {
refreshSettingsOverviewScreen()
},
},
PluginFlags.Enabled,
InternalPluginFlags.Internal,
)
// Expose to EvalJSSetting
export let api: PluginApi<{ storage: Storage }>