aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2026-01-18 12:14:44 +0800
committerHsiangNianian <i@jyunko.cn>2026-01-18 12:14:44 +0800
commit16047ca6aa8eea7f5495e938faebb01bf96d09de (patch)
tree766d78d2373a9c76e8003df4f7e16dab0c6ec63b /src-tauri
parent723738e5308b0195ad715e0fa49f19db754753c6 (diff)
downloadDropOut-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')
-rw-r--r--src-tauri/src/main.rs26
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,