From ca80e7d6b294487f098b10018bae7f159caf7671 Mon Sep 17 00:00:00 2001 From: Wyvest Date: Sun, 1 Mar 2026 04:47:55 -0500 Subject: [PATCH] Fix memory setting not updating --- apps/oneclient/frontend/src/bindings.gen.ts | 14 +++++++------- packages/core/src/api/game/launch.rs | 14 ++++++++++---- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/apps/oneclient/frontend/src/bindings.gen.ts b/apps/oneclient/frontend/src/bindings.gen.ts index 18714bb0..352dcb62 100644 --- a/apps/oneclient/frontend/src/bindings.gen.ts +++ b/apps/oneclient/frontend/src/bindings.gen.ts @@ -313,8 +313,10 @@ export type VersionType = */ "old_beta" -const ARGS_MAP = { 'core':'{"createCluster":["options"],"refreshAccount":["uuid"],"changeSkin":["access_token","skin_url","skin_variant"],"removeUser":["uuid"],"getClusterById":["id"],"getProcessLogTail":["id","max_lines"],"launchCluster":["id","uuid","search_for_java"],"syncCluster":["cluster_id"],"getLogByName":["id","name"],"getGlobalProfile":[],"getUsers":[],"openMsaLogin":[],"getPackage":["provider","slug"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"getDefaultUser":["fallback"],"getClusters":[],"getLogs":["id"],"getRunningProcesses":[],"refreshAccounts":[],"getPackageBody":["provider","body"],"changeCape":["access_token","cape_uuid"],"setClusterStage":["id","stage"],"readSettings":[],"getProfileOrDefault":["name"],"getLoadersForVersion":["mc_version"],"searchPackages":["provider","query"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"removeCluster":["id"],"getMultiplePackages":["provider","slugs"],"getUsersFromAuthor":["provider","author"],"getLinkedPackages":["cluster_id"],"removePackage":["cluster_id","package_hash"],"getScreenshots":["id"],"installModpack":["modpack","cluster_id"],"fetchMinecraftProfile":["uuid"],"convertUsernameUUID":["username_uuid"],"setDiscordRPCMessage":["message"],"isClusterRunning":["cluster_id"],"createSettingsProfile":["name"],"getRunningProcessesByClusterId":["cluster_id"],"setDefaultUser":["uuid"],"getGameVersions":[],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"updateClusterById":["id","request"],"togglePackage":["cluster_id","package_hash"],"killProcess":["pid"],"updateClusterProfile":["name","profile"],"getUser":["uuid"],"writeSettings":["setting"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"open":["input"],"removeCape":["access_token"],"fetchLoggedInProfile":["access_token"],"getWorlds":["id"]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'debug':'{"getArch":[],"getOsVersion":[],"getGitCommitHash":[],"openDevTools":[],"getType":[],"getPackageVersion":[],"getLocale":[],"getBuildTimestamp":[],"isInDev":[],"getPlatform":[],"getFamily":[]}', 'events':'{"message":["event"],"process":["event"],"ingress":["event"]}', 'oneclient':'{"updateBundlePackages":["cluster_id"],"isBundleSyncing":[],"getClustersGroupedByMajor":[],"downloadPackageFromBundle":["package","cluster_id","bundle_name","skip_compatibility"],"extractBundleOverrides":["bundle_path","cluster_id"],"getVersions":[],"refreshArt":["path"],"cacheArt":["path"],"installUpdate":[],"checkForUpdate":[],"getBundlesFor":["cluster_id"]}' } -export type Router = { 'oneclient': { getClustersGroupedByMajor: () => Promise>, +const ARGS_MAP = { 'oneclient':'{"checkForUpdate":[],"installUpdate":[],"extractBundleOverrides":["bundle_path","cluster_id"],"getVersions":[],"refreshArt":["path"],"getBundlesFor":["cluster_id"],"cacheArt":["path"],"getClustersGroupedByMajor":[],"isBundleSyncing":[],"updateBundlePackages":["cluster_id"],"downloadPackageFromBundle":["package","cluster_id","bundle_name","skip_compatibility"]}', 'debug':'{"openDevTools":[],"getArch":[],"getFamily":[],"isInDev":[],"getPlatform":[],"getType":[],"getOsVersion":[],"getGitCommitHash":[],"getLocale":[],"getBuildTimestamp":[],"getPackageVersion":[]}', 'core':'{"getRunningProcesses":[],"getPackage":["provider","slug"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"updateClusterById":["id","request"],"getDefaultUser":["fallback"],"getClusters":[],"getProfileOrDefault":["name"],"removeUser":["uuid"],"writeSettings":["setting"],"getLinkedPackages":["cluster_id"],"getGlobalProfile":[],"togglePackage":["cluster_id","package_hash"],"launchCluster":["id","uuid","search_for_java"],"removeCluster":["id"],"setDefaultUser":["uuid"],"fetchLoggedInProfile":["access_token"],"getProcessLogTail":["id","max_lines"],"openMsaLogin":[],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"open":["input"],"createCluster":["options"],"getUsersFromAuthor":["provider","author"],"getUsers":[],"setClusterStage":["id","stage"],"getWorlds":["id"],"getPackageBody":["provider","body"],"removePackage":["cluster_id","package_hash"],"getScreenshots":["id"],"updateClusterProfile":["name","profile"],"getLoadersForVersion":["mc_version"],"refreshAccounts":[],"getClusterById":["id"],"getLogs":["id"],"getUser":["uuid"],"searchPackages":["provider","query"],"getMultiplePackages":["provider","slugs"],"installModpack":["modpack","cluster_id"],"changeCape":["access_token","cape_uuid"],"convertUsernameUUID":["username_uuid"],"getLogByName":["id","name"],"fetchMinecraftProfile":["uuid"],"createSettingsProfile":["name"],"syncCluster":["cluster_id"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"changeSkin":["access_token","skin_url","skin_variant"],"readSettings":[],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"isClusterRunning":["cluster_id"],"setDiscordRPCMessage":["message"],"refreshAccount":["uuid"],"removeCape":["access_token"],"getGameVersions":[],"killProcess":["pid"],"getRunningProcessesByClusterId":["cluster_id"]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'events':'{"process":["event"],"ingress":["event"],"message":["event"]}' } +export type Router = { 'folders': { fromCluster: (folderName: string) => Promise, +openCluster: (folderName: string) => Promise }, +'oneclient': { getClustersGroupedByMajor: () => Promise>, getBundlesFor: (clusterId: number) => Promise, getVersions: () => Promise, extractBundleOverrides: (bundlePath: string, clusterId: number) => Promise, @@ -325,6 +327,9 @@ updateBundlePackages: (clusterId: number) => Promise, isBundleSyncing: () => Promise, cacheArt: (path: string) => Promise, refreshArt: (path: string) => Promise }, +'events': { ingress: (event: IngressPayload) => Promise, +message: (event: MessagePayload) => Promise, +process: (event: ProcessPayload) => Promise }, 'core': { getClusters: () => Promise, getClusterById: (id: number) => Promise, removeCluster: (id: number) => Promise, @@ -379,11 +384,6 @@ removeCape: (accessToken: string) => Promise, convertUsernameUUID: (usernameUuid: string) => Promise, setDiscordRPCMessage: (message: string) => Promise, open: (input: string) => Promise }, -'events': { ingress: (event: IngressPayload) => Promise, -message: (event: MessagePayload) => Promise, -process: (event: ProcessPayload) => Promise }, -'folders': { fromCluster: (folderName: string) => Promise, -openCluster: (folderName: string) => Promise }, 'debug': { openDevTools: () => Promise, isInDev: () => Promise, getArch: () => Promise, diff --git a/packages/core/src/api/game/launch.rs b/packages/core/src/api/game/launch.rs index c6e62253..65d422ec 100644 --- a/packages/core/src/api/game/launch.rs +++ b/packages/core/src/api/game/launch.rs @@ -31,12 +31,18 @@ pub async fn launch_minecraft( } prepare_cluster(cluster, force, search_for_java).await?; - let mut settings = get_global_profile().await; - if let Some(name) = &cluster.setting_profile_name + let global = get_global_profile().await; + let mut settings = if let Some(name) = &cluster.setting_profile_name && let Some(profile) = get_profile_by_name(name).await? { - settings.merge(profile); - } + // Start from cluster profile so its values (e.g. mem_max) take precedence, then fill + // in any None fields from global (merge uses overwrite_none). + let mut s = profile; + s.merge(global.clone()); + s + } else { + global + }; let state = State::get().await?; let dirs = Dirs::get().await?;