mc-launcher-core 0.0.3

This is an mc launcher core written in Rust.
docs.rs failed to build mc-launcher-core-0.0.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: mc-launcher-core-0.0.1

mc-launcher-core

This is an mc launcher core written in Rust.

You can use the functions provided by this library to create an mc launcher, offering only basic functionalities.

Installation

Use cargo add mc-launcher-core to add it to your project.

Example

Here's an example of launching the latest version of mc offline:

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);
        }
    }
}

Todo list

  • Crate library
  • Install original version
  • Offline launch
  • Microsoft account login
  • Support for Forge, Fabric, Quilt, and Liteloader
  • Install of mrpack modpacks
  • Comprehensive documentation

Note

  • There is still a lot of work to be done in this project. It is recommended to wait for version 0.1.0 before trying it out.
  • The aim of this project is to have a user-friendly launcher SDK library written in Rust.
  • During the development process, I referenced and learned from the minecraft-launcher-lib in Python libraries.