A Minecraft downloader written in rust,

Overview

mcdl_core_rs

A Minecraft downloader written in rust

Changelog v0.1.4

Removed all deprecated functions.

Features

As of this moment in the initial release of the downloader, the downloader only supports release versions of vanilla mc. More support like downloading snapshots, modloaders like fabric, forge etc, will be added in updates.

src/main.rs for the manual tests I did

Documentation

Configuration updater

minecraft_downloader_core::main::config_updater::update_configs

This updates the configuration files for release and snapshot vanilla versions, although I haven't yet coded in the snapshot support.

Usage: update_configs("your installation directory").expect("Error message!")

Where installation directory is the directory where .minecraft folder will be generated.

Game downloader

jarFile downloader.

minecraft_downloader_core::main::game_downloader::version_downloader

This downloads the respective jar file for the given game version

Usage: version_downloader("1.19.2", "your_installation_directory", "release").expect("Error message")

Here installation directory will be the same as used in the function above.

libraries downloader

minecraft_downloader_core::main::game_downloader::lib_downloader

Downloads the respective libraries for the given game version

Natives parsing (platform dependent libraries for windows at the moment only are downloaded alongside the platform independent libraries

Usage: lib_downloader("1.19.2", "your_installation_directory").expect("Error message")

Here installation directory will be the same as used in the function above.

assets downloader

Downloads the respective assets for the given game version

minecraft_downloader_core::main::game_downloader::assets_downloader

Usage:

assets_downloader("1.19.2", "your_installation_directory").expect("Error message")

Here installation directory will be the same as used in the function above.

Changelog v0.1.2

Added some new functions related to minecraft launcher, which will also be used by my next upcoming crate

Functions

extract_natives

Downloads native libraries for the given game version to a given path. Note: This function assumes that the game has already been installed, i.e, jarFile, libraries and assets have been downloaded This function can be used my minecraft launcher libraries to extract the natives to a certain path and pass it to the minecraft launching command.

use minecraft_downloader_core::main::game_downloader::extract_natives;

extract_natives("1.19.2", "minecraft_installation_directory", "path_to_extract_natives_to", "windows/linux/osx");

Implemented only for windows at the moment.

get_logging_arg

Gets the log4j2FilePath argument for the given game version

Note: This function assumes that the game has already been installed, i.e, jarFile, libraries and assets have been downloaded

This function can be used my minecraft launcher libraries to get the log4j2 coniguration file path and pass it to the minecraft launching command.

use minecraft_downloader_core::main::game_downloader::get_logging_arg;

get_logging_arg("1.19.2", "minecraft_installation_path")

get_main_class

Gets the mainClass of minecraft for the given game version.

Note: This function assumes that the game has already been installed, i.e, jarFile, libraries and assets have been downloaded.

This function can be used by minecraft launcher libraries to get the mainClass and pass it to the minecraft launching command.

use minecraft_downloader_core::main::game_downloader::get_main_class;

get_main_class("1.19.2", "minecraft_installation_path")

Changelog v0.1.3

Added a new function get_class_path

get_class_path

Generates the classpath for -cp argument in minecraft command for given version and returns in the form of a string

Note: This function assumes that the game has already been installed, i.e, jarFile, libraries and assets have been downloaded.

This function can be used by minecraft launcher libraries to get the mainClass and pass it to the minecraft launching command.

use minecraft_downloader_core::main::game_downloader::get_class_path;

get_class_path("minecraft_installation_path", "1.19.2")

This project uses https://github.com/shasankp000/requests_rs (updated to v0.1.5)

You might also like...
Rust library to download and run Minecraft instances.

Rust library to download and run Minecraft instances. Build the code To build the library, the do the following command: carbo build Run the example Y

Rust implementation of the Minecraft authentication server (Yggdrasil)
Rust implementation of the Minecraft authentication server (Yggdrasil)

yggoxide This crate currently implements the REST API for: Service Exposed at Minecraft Production Coverage Yggdrasil authentication / and /authserver

A reimplementation of the minecraft server framework in rust.

FerrumC About FerrumC is a Rust-based reimplementation of the Minecraft server, designed to be fast and efficient, optimized for low memory usage and

Minecraft Protocol Library

Protocol Minecraft Protocol Library This branch is dedicated to the Minecraft Bedrock Edition Protocol. If you have any concerns or questions you can

Bell is a work in progress programming language that compiles to MCfunction (Minecraft's language for creating datapacks).

Bell is a work in progress programming language that compiles to MCfunction (Minecraft's language for creating datapacks). It provides a higher level,

💤 Put your Minecraft server to rest when idle.
💤 Put your Minecraft server to rest when idle.

💤 Put your Minecraft server to rest when idle.

Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.
Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.

vx_bevy A voxel engine prototype made using the Bevy game engine. Goals and features Very basic worldgen Animated chunk loading (ala cube world) Optim

Provision Mammoth-ready Minecraft clusters with ease!

Minecraft Server Provisioner Provision Mammoth-ready Minecraft clusters with ease! Overview Provisioner is a tool designed to make the creation of Mam

Like minecraft, but crispier!

crispycraft Like minecraft, but crispier! Links Library documentation WebGPU: https://docs.rs/wgpu/0.12.0/wgpu/ building_blocks: https://docs.rs/build

Owner
Shasank Prasad
Just an introvert waddling along the lanes of the internet... :)
Shasank Prasad
A simple Minecraft written in Rust with the Piston game engine

hematite A simple Minecraft written in Rust with the Piston game engine How To Open a World This method is only for personal use. Never distribute cop

PistonDevelopers 1.7k Dec 22, 2022
ULE - Minecraft's server core written in Rust

ULE - Minecraft's server core written in Rust This's server core fully written in Rust-Lang and using more custom code for best perfomance and control

null 13 Oct 26, 2022
This is a Minecraft Classic server written in Rust powered by tokio and classicl.

classicl_server Introduction This is a Minecraft Classic server written in Rust powered by tokio and classicl. Installation Cargo The project can be i

null 3 Nov 3, 2022
Rust-based replacement for the default Minecraft renderer

wgpu-mc ?? A blazing fast alternative renderer for Minecraft Intro WebGPU is a new web specification designed to provide modern graphics and compute c

Birb 1 Jun 28, 2022
A Minecraft Java Edition to Bedrock Edition resource pack convertor in Rust

j2be A Minecraft Java Edition to Bedrock Edition resource pack convertor in Rust How to use Note: This project is still in development Run cargo build

Cqdet 11 Sep 15, 2021
Easily update your minecraft mods with 1 file (guess I'm back to rust again)

Mod Updater This program updates all your mods to a newer/later version. To use: Create a file named config.toml Create a folder named mods; Add the f

sussyimpostor 2 Sep 18, 2022
A simple, very minimal Minecraft server implementation in Rust.

A simple, very minimal Minecraft server implementation in Rust. For a simple Minecraft server that isn't supposed to do much (for example, a limbo ser

Chris 8 Dec 22, 2022
Brine is my attempt at writing a Minecraft client in Rust using the Bevy game engine.

Brine Brine is my attempt at writing a Minecraft client in Rust using the Bevy game engine. It's EXTREMELY work-in-progress. The thing that makes Brin

Ben Reeves 34 Dec 26, 2022
A Rust library for reading asset files and resource packs for any version of Minecraft

minecraft-assets A Rust library for reading asset files and resource packs for any version of Minecraft. Example use minecraft_assets::api::AssetPack;

Ben Reeves 7 Aug 14, 2022
A Rust framework for building Minecraft servers.

A Rust framework for building Minecraft: Java Edition servers. Like feather, Valence is an effort to build a Minecraft compatible server completely fr

Valence 1.4k Dec 30, 2022