From 63ca20db045a98f1f145b95795b3e3ab1154d26d Mon Sep 17 00:00:00 2001 From: Ap_Tx <3045929398@qq.com> Date: Fri, 2 Oct 2026 20:00:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20edit=5Fto=5Fcore=20=E4=BB=85=E5=9C=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AD=97=E6=AE=B5=E5=8F=98=E6=9B=B4=E6=97=B6?= =?UTF-8?q?=E6=89=8D=E5=B8=A6=20content=5Fset/launch=5Foverrides=20patch?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=97=A0=20content=20set=20?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E4=BE=8B=E6=94=B9=E5=88=86=E7=BB=84=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/app/src/api/instance/mod.rs | 66 ++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/apps/app/src/api/instance/mod.rs b/apps/app/src/api/instance/mod.rs index 00c1d08..300dc79 100644 --- a/apps/app/src/api/instance/mod.rs +++ b/apps/app/src/api/instance/mod.rs @@ -478,27 +478,51 @@ fn edit_to_core(edit_instance: EditInstance) -> Result { None => Ok(CoreInstanceLink::Unmanaged), }) .transpose()?, - launch_overrides: Some(InstanceLaunchOverridesPatch { - player: None, - instance_mode: None, - java_path: edit_instance.java_path, - extra_launch_args: edit_instance.extra_launch_args, - custom_env_vars: edit_instance.custom_env_vars, - memory: edit_instance.memory, - force_fullscreen: edit_instance.force_fullscreen, - maximize_window: edit_instance.maximize_window, - game_resolution: edit_instance.game_resolution, - launch_preparation_timeout: edit_instance - .launch_preparation_timeout, - hooks: edit_instance.hooks, - }), - content_set_patch: Some(AppliedContentSetPatch { - source_kind: None, - game_version: edit_instance.game_version, - protocol_version: Some(None), - loader: edit_instance.loader, - loader_version: edit_instance.loader_version, - }), + launch_overrides: { + let has_launch_change = edit_instance.java_path.is_some() + || edit_instance.extra_launch_args.is_some() + || edit_instance.custom_env_vars.is_some() + || edit_instance.memory.is_some() + || edit_instance.force_fullscreen.is_some() + || edit_instance.maximize_window.is_some() + || edit_instance.game_resolution.is_some() + || edit_instance.launch_preparation_timeout.is_some() + || edit_instance.hooks.is_some(); + if has_launch_change { + Some(InstanceLaunchOverridesPatch { + player: None, + instance_mode: None, + java_path: edit_instance.java_path, + extra_launch_args: edit_instance.extra_launch_args, + custom_env_vars: edit_instance.custom_env_vars, + memory: edit_instance.memory, + force_fullscreen: edit_instance.force_fullscreen, + maximize_window: edit_instance.maximize_window, + game_resolution: edit_instance.game_resolution, + launch_preparation_timeout: edit_instance + .launch_preparation_timeout, + hooks: edit_instance.hooks, + }) + } else { + None + } + }, + content_set_patch: { + let has_content_change = edit_instance.game_version.is_some() + || edit_instance.loader.is_some() + || edit_instance.loader_version.is_some(); + if has_content_change { + Some(AppliedContentSetPatch { + source_kind: None, + game_version: edit_instance.game_version, + protocol_version: Some(None), + loader: edit_instance.loader, + loader_version: edit_instance.loader_version, + }) + } else { + None + } + }, last_played: None, submitted_time_played: None, recent_time_played: None,