Files
Starlight_Launcher/packages/app-lib/src/api/instance/install.rs
T

49 lines
1.4 KiB
Rust

use crate::state::{JavaVersion, State};
pub async fn get_optimal_jre_key(
instance_id: &str,
) -> crate::Result<Option<JavaVersion>> {
let state = State::get().await?;
let context =
crate::state::instances::commands::get_instance_launch_context(
instance_id,
&state.pool,
)
.await?
.ok_or_else(|| {
crate::ErrorKind::OtherError(format!(
"Tried to resolve a nonexistent instance {instance_id}!"
))
})?;
let (minecraft, version_index) =
crate::launcher::resolve_minecraft_manifest(
&context.applied_content_set.game_version,
&state,
)
.await?;
let version = &minecraft.versions[version_index];
let loader_version = crate::launcher::get_loader_version_from_profile(
&context.applied_content_set.game_version,
context.applied_content_set.loader,
context.applied_content_set.loader_version.as_deref(),
)
.await?;
let version_info = crate::launcher::download::download_version_info(
&state,
version,
context.applied_content_set.loader,
loader_version.as_ref(),
None,
None,
None,
)
.await?;
let major_version = version_info
.java_version
.as_ref()
.map_or(8, |java| java.major_version);
crate::api::jre::find_java_for_version(major_version).await
}