fix: edit_to_core 仅在相关字段变更时才带 content_set/launch_overrides patch,修复无 content set 的实例改分组失败

This commit is contained in:
AxTps committed 2026-10-02 20:00:49 +08:00
1 parent 0388e339db
commit 63ca20db04
1 file changed
+28 -4
+28 -4
View File
@@ -478,7 +478,18 @@ fn edit_to_core(edit_instance: EditInstance) -> Result<CoreEditInstance> {
None => Ok(CoreInstanceLink::Unmanaged), None => Ok(CoreInstanceLink::Unmanaged),
}) })
.transpose()?, .transpose()?,
launch_overrides: Some(InstanceLaunchOverridesPatch { 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, player: None,
instance_mode: None, instance_mode: None,
java_path: edit_instance.java_path, java_path: edit_instance.java_path,
@@ -491,14 +502,27 @@ fn edit_to_core(edit_instance: EditInstance) -> Result<CoreEditInstance> {
launch_preparation_timeout: edit_instance launch_preparation_timeout: edit_instance
.launch_preparation_timeout, .launch_preparation_timeout,
hooks: edit_instance.hooks, hooks: edit_instance.hooks,
}), })
content_set_patch: Some(AppliedContentSetPatch { } 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, source_kind: None,
game_version: edit_instance.game_version, game_version: edit_instance.game_version,
protocol_version: Some(None), protocol_version: Some(None),
loader: edit_instance.loader, loader: edit_instance.loader,
loader_version: edit_instance.loader_version, loader_version: edit_instance.loader_version,
}), })
} else {
None
}
},
last_played: None, last_played: None,
submitted_time_played: None, submitted_time_played: None,
recent_time_played: None, recent_time_played: None,