#minecraft-launcher #launcher #minecraft #mc #authentication

mc-launcher-core

这是一个用 Rust 编写的 mc 启动器核心。

3 个版本

0.0.3 2024 年 1 月 17 日
0.0.2 2024 年 1 月 15 日
0.0.1 2023 年 12 月 3 日

#690 in 开发工具

27 每月下载量

MIT 许可证

115KB
3K SLoC

mc-launcher-core

这是一个用 Rust 编写的 mc 启动器核心。

您可以使用此库提供的功能创建一个 mc 启动器,仅提供基本功能。

安装

使用 cargo add mc-launcher-core 将其添加到您的项目中。

示例

以下是一个离线启动 mc 最新版本的示例

use std::process::Command;

use mc_launcher_core::{
    auth::offline::get_offline_options,
    command::get_minecraft_command,
    install::install_minecraft_version,
    types::CallbackDict,
    utils::{get_latest_version, get_minecraft_directory},
};

fn main() {
    let options = get_offline_options("Steve");
    let latest_version = get_latest_version().unwrap().release;
    let minecraft_directory = get_minecraft_directory();

    let _ = install_minecraft_version(
        &latest_version,
        &minecraft_directory,
        &CallbackDict::default(),
    );

    let minecraft_command_result = get_minecraft_command(
        &get_latest_version().unwrap().release,
        &minecraft_directory,
        &options,
    );

    match minecraft_command_result {
        Ok(minecraft_command) => {
            // Start Minecraft
            let mut cmd = Command::new(&minecraft_command[0])
                .args(&minecraft_command[1..minecraft_command.len()])
                .spawn()
                .expect("Failed to start Minecraft");
            let _ = cmd.wait();
        }
        Err(err) => {
            eprintln!("Failed to get Minecraft command: {}", err);
        }
    }
}

待办事项列表

  • 包库
  • 安装原始版本
  • 离线启动
  • 微软账户登录
  • 支持 Forge、Fabric、Quilt 和 Liteloader
  • 安装 mrpack 模组包
  • 全面文档

注意

  • 该项目仍有很多工作要做。建议在尝试之前等待 0.1.0 版本。
  • 该项目的目标是拥有一个用 Rust 编写的用户友好的启动器 SDK 库。
  • 在开发过程中,我参考并学习了 Python 库中的 minecraft-launcher-lib。

依赖项

~162MB
~3M SLoC