hexomc-lib 0.1.1

A library for launching Minecraft instances.
Documentation

hexomc-lib

Minecraft 啟動器核心的 Rust 函式庫(library,非執行檔)。提供組裝一個啟動器所需的底層能力:

  • 版本 — 查詢 Mojang version manifest 與各版本 JSON
  • 安裝 — Vanilla / Fabric / Forge / NeoForge 安裝
  • Java — 偵測本機 Java,或下載 Adoptium Temurin JRE
  • 模組 — 模組偵測,以及 Modrinth / CurseForge 查詢與自動更新
  • 資源 — 資源包 / 光影 / 地圖偵測

安裝

[dependencies]
hexomc-lib = "0.1"

快速開始

安裝並以離線模式啟動 Minecraft:

use hexomc_lib::*;
use std::path::PathBuf;

#[tokio::main]
async fn main() -> Result<()> {
    let base_dir = PathBuf::from("./mc_data");
    let instance_name = "1.21.1-vanilla";

    let java = find_java(21).expect("找不到 Java 21");

    install_with_loader(
        "1.21.1",
        instance_name,
        &base_dir,
        &VanillaInstaller,
        no_progress(),
    )
    .await?;

    let opts = LaunchOptions::offline(instance_name, java.path.clone(), "HexoPlayer");
    let mut child = launch(&opts, &base_dir).await?;
    child.wait()?;

    Ok(())
}

完整範例見 examples/

cargo run --example launch_vanilla   # 也有 launch_fabric、launch_forge、launch_neoforge

磁碟結構

啟動器根目錄(base_dir)內含共用的 assets/libraries/,以及各實例的 instance/{instance_name}/。同一個 MC 版本可用不同 loader 建立不同實例(例如 1.21.1-vanilla1.21.1-fabric)而不衝突。

測試

cargo test