use std::env;
use lyceris::minecraft::{
config::ConfigBuilder,
install::install,
launch::launch,
loader::{fabric::Fabric, forge::Forge, quilt::Quilt, Loader},
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let current_dir = env::current_dir()?;
let config = ConfigBuilder::new(
current_dir.join("game"),
"1.21.4".into(),
lyceris::auth::AuthMethod::Offline {
username: "Lyceris".into(),
uuid: None,
},
)
.loader(get_loader_by_name("fabric", "0.16.0"))
.build();
install(&config, None).await?;
launch(&config, None).await?.wait().await?;
Ok(())
}
fn get_loader_by_name(name: &str, loader_version: &str) -> Box<dyn Loader> {
match name {
"fabric" => Fabric(loader_version.to_string()).into(),
"forge" => Forge(loader_version.to_string()).into(),
"quilt" => Quilt(loader_version.to_string()).into(),
_ => panic!("Loader not found"),
}
}