2025-06-03 16:24:58 +07:00
|
|
|
import {
|
|
|
|
|
isSettingsModulesLoaded,
|
|
|
|
|
onSettingsModulesLoaded,
|
|
|
|
|
} from '@revenge-mod/discord/modules/settings'
|
2025-05-05 21:16:44 +07:00
|
|
|
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
|
2025-05-19 01:43:41 +07:00
|
|
|
import { PluginFlags } from '@revenge-mod/plugins/constants'
|
2025-05-08 19:00:49 +07:00
|
|
|
import type { PluginApi } from '@revenge-mod/plugins/types'
|
2025-05-05 21:16:44 +07:00
|
|
|
|
2025-05-22 02:48:54 +07:00
|
|
|
interface Storage {
|
|
|
|
|
devtools: {
|
|
|
|
|
address: string
|
|
|
|
|
autoConnect: boolean
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const defaultStorage: Storage = {
|
|
|
|
|
devtools: {
|
|
|
|
|
address: 'localhost:8097',
|
|
|
|
|
autoConnect: false,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
registerPlugin<Storage>(
|
2025-05-05 21:16:44 +07:00
|
|
|
{
|
|
|
|
|
id: 'revenge.settings.developer',
|
|
|
|
|
name: 'Developer Settings',
|
|
|
|
|
description: 'Developer settings menus for Revenge',
|
|
|
|
|
author: 'Revenge',
|
|
|
|
|
icon: 'WrenchIcon',
|
|
|
|
|
},
|
|
|
|
|
{
|
2025-05-22 02:48:54 +07:00
|
|
|
storage: {
|
|
|
|
|
load: true,
|
|
|
|
|
default: defaultStorage,
|
|
|
|
|
},
|
2025-06-07 10:20:03 +07:00
|
|
|
start(api_) {
|
2025-05-18 22:24:48 +07:00
|
|
|
api = api_
|
2025-05-22 02:48:54 +07:00
|
|
|
|
2025-06-07 09:58:28 +07:00
|
|
|
if (isSettingsModulesLoaded()) require('./register')
|
|
|
|
|
else onSettingsModulesLoaded(() => require('./register'))
|
2025-05-22 02:48:54 +07:00
|
|
|
|
2025-06-07 10:20:03 +07:00
|
|
|
Promise.all([import('./react-devtools'), api.storage.get()]).then(
|
|
|
|
|
([rdt, settings]) => {
|
|
|
|
|
if (settings.devtools.autoConnect) rdt.connectToDevTools()
|
|
|
|
|
},
|
|
|
|
|
)
|
2025-05-05 21:16:44 +07:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
PluginFlags.Enabled,
|
|
|
|
|
InternalPluginFlags.Internal,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Expose to EvaluateJavaScriptSetting
|
2025-05-22 02:48:54 +07:00
|
|
|
export let api: PluginApi<Storage>
|