diff options
| author | 2026-01-18 12:14:44 +0800 | |
|---|---|---|
| committer | 2026-01-18 12:14:44 +0800 | |
| commit | 16047ca6aa8eea7f5495e938faebb01bf96d09de (patch) | |
| tree | 766d78d2373a9c76e8003df4f7e16dab0c6ec63b /src-tauri/src | |
| parent | 723738e5308b0195ad715e0fa49f19db754753c6 (diff) | |
| download | DropOut-16047ca6aa8eea7f5495e938faebb01bf96d09de.tar.gz DropOut-16047ca6aa8eea7f5495e938faebb01bf96d09de.zip | |
fix(forge): check if installer created version JSON before manual creation
The Forge installer may or may not create the version.json file
depending on the installer version. Check if the file exists after
running the installer before manually creating it to avoid overwriting
any installer-generated configuration.
Diffstat (limited to 'src-tauri/src')
| -rw-r--r-- | src-tauri/src/main.rs | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2871b03..4086066 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1917,10 +1917,28 @@ async fn install_forge( "Forge installer completed, creating version profile...".to_string() ); - // Now create the version JSON - let result = core::forge::install_forge(&game_dir, &game_version, &forge_version) - .await - .map_err(|e| e.to_string())?; + // Check if the version JSON already exists + let version_id = core::forge::generate_version_id(&game_version, &forge_version); + let json_path = game_dir.join("versions").join(&version_id).join(format!("{}.json", version_id)); + + let result = if json_path.exists() { + // Version JSON was created by the installer, load it + emit_log!( + window, + "Using version profile created by Forge installer".to_string() + ); + core::forge::InstalledForgeVersion { + id: version_id, + minecraft_version: game_version.clone(), + forge_version: forge_version.clone(), + path: json_path, + } + } else { + // Installer didn't create JSON, create it manually + core::forge::install_forge(&game_dir, &game_version, &forge_version) + .await + .map_err(|e| e.to_string())? + }; emit_log!( window, |