Fix forge 1.15.2->1.16.5, Fabric 0.16.0+, and migration issues with Forge (#2232)

* Fix Forge versions, newer fabric, migration breakage

* lint

* fix lint
This commit is contained in:
Geometrically
2024-08-21 21:24:35 -07:00
committed by GitHub
parent 4d0407a3b3
commit 157c27c20d
11 changed files with 84 additions and 45 deletions

View File

@@ -227,13 +227,32 @@ pub async fn install_minecraft(
.position(|x| x.id == "22w16a")
.unwrap_or(0);
let loader_version = get_loader_version_from_profile(
let mut loader_version = get_loader_version_from_profile(
&profile.game_version,
profile.loader,
profile.loader_version.as_deref(),
)
.await?;
// If no loader version is selected, try to select the stable version!
if profile.loader != ModLoader::Vanilla && loader_version.is_none() {
loader_version = get_loader_version_from_profile(
&profile.game_version,
profile.loader,
Some("stable"),
)
.await?;
let loader_version_id = loader_version.clone();
crate::api::profile::edit(&profile.path, |prof| {
prof.loader_version =
loader_version_id.clone().map(|x| x.id.clone());
async { Ok(()) }
})
.await?;
}
let version_jar =
loader_version.as_ref().map_or(version.id.clone(), |it| {
format!("{}-{}", version.id.clone(), it.id.clone())
@@ -455,6 +474,14 @@ pub async fn launch_minecraft(
)
.await?;
if profile.loader != ModLoader::Vanilla && loader_version.is_none() {
return Err(crate::ErrorKind::LauncherError(format!(
"No loader version selected for {}",
profile.loader.as_str()
))
.into());
}
let version_jar =
loader_version.as_ref().map_or(version.id.clone(), |it| {
format!("{}-{}", version.id.clone(), it.id.clone())