diff --git a/src/api/Settings.ts b/src/api/Settings.ts index 0c08041bf..316ea9691 100644 --- a/src/api/Settings.ts +++ b/src/api/Settings.ts @@ -247,6 +247,19 @@ export function migratePluginSetting(pluginName: string, oldSetting: string, new SettingsStore.markAsChanged(); } +export function migrateSettingFromPlugin(newPlugin: string, newSetting: string, oldPlugin: string, oldSetting: string) { + const newSettings = SettingsStore.plain.plugins[newPlugin]; + const oldSettings = SettingsStore.plain.plugins[oldPlugin]; + if (!oldSettings || !Object.hasOwn(oldSettings, oldSetting)) return; + if (!newSettings || (Object.hasOwn(SettingsStore.plain.plugins[newPlugin], newSetting))) return; + + if (Object.hasOwn(SettingsStore.plain.plugins[newPlugin], newSetting)) return; + + SettingsStore.plain.plugins[newPlugin][newSetting] = oldSettings[oldSetting]; + delete oldSettings[oldSetting]; + SettingsStore.markAsChanged(); +} + export function definePluginSettings< Def extends SettingsDefinition, Checks extends SettingsChecks, diff --git a/src/equicordplugins/rpcEditor/index.tsx b/src/equicordplugins/rpcEditor/index.tsx index c3854ef71..446a17524 100644 --- a/src/equicordplugins/rpcEditor/index.tsx +++ b/src/equicordplugins/rpcEditor/index.tsx @@ -5,7 +5,7 @@ */ import { DataStore } from "@api/index"; -import { definePluginSettings, migratePluginSettings } from "@api/Settings"; +import { definePluginSettings, migratePluginSettings, migrateSettingFromPlugin } from "@api/Settings"; import { Devs } from "@utils/constants"; import { useForceUpdater } from "@utils/react"; import definePlugin, { OptionType } from "@utils/types"; @@ -101,6 +101,7 @@ const settings = definePluginSettings({ }, }); +migrateSettingFromPlugin("RPCEditor", "replacedAppIds", "ReplaceActivityTypes", "replacedAppIds"); migratePluginSettings("RPCEditor", "ReplaceActivityTypes"); export default definePlugin({ name: "RPCEditor",