OneLauncher-Cracked/packages/oneclient_core/examples/download_game.rs
2026-07-14 18:06:23 +02:00

41 lines
1.3 KiB
Rust

#![recursion_limit = "256"]
use oneclient_core::clusters::{ClusterManager, CreateClusterOptions};
use oneclient_core::dev;
use oneclient_core::packages::domain::GameLoader;
use oneclient_core::LauncherResult;
#[tokio::main]
async fn main() -> LauncherResult<()> {
dev::initialize().await?;
let state = dev::ephemeral_state().await?;
let args: Vec<String> = std::env::args().skip(1).collect();
let mc_version = args.first().map(String::as_str).unwrap_or("26.1");
let loader = args
.get(1)
.and_then(|s| s.parse().ok())
.unwrap_or(GameLoader::Vanilla);
let loader_version = args.get(2).map(String::as_str);
let cluster = ClusterManager::create(
&state,
CreateClusterOptions {
name: format!("download-{mc_version}"),
mc_version: mc_version.to_string(),
mc_loader: loader,
mc_loader_version: loader_version.map(str::to_string),
mem_max: None,
},
)
.await?;
println!(
"Preparing cluster {} ({} {:?})...",
cluster.name, cluster.mc_version, cluster.mc_loader
);
let ready = ClusterManager::prepare(&state, cluster.id, false, true, true, None).await?;
println!("Cluster ready at {}", ready.dir()?.display());
Ok(())
}