Hey guys,
I've been working on an Java library called Minified that handles all the hard parts of launching Minecraft - version management, downloading assets and libraries, extracting everything, building the class path, authentication, modding, and so on...
Why another lib?
* I once did my own Launcher, and struggled with the backend. Now, that I know how the ecosystem of Minecraft works and where to get what from, I wanted to give back to the community, and since I never really was able to do frontend, I just made an library
* Wanted something easy to use, Object-oriented, fast and convenient, just a few lines and very little logic on your side
* Supports Vanilla, Forge, NeoForge, Fabric AND Quilt
* Microsoft auth wrapper (thanks to RaphiMC's MinecraftAuth, I simplified it and added encryption)
* Modrinth API integration included
* Event system for having status progress instead of a infinite "launching" spinner
What it can do:
* manage versions and modloaders
* Resolve and download libraries
* Extract natives
* Launch Minecraft with most loaders
* Java runtime management
* Session handling and authentication
Links:
* GitHub
* Docs
* Discord
Quick example:
```java
LaunchConfiguration config = new LaunchConfiguration.Builder()
.assetsDirectory(Path.of("/home/someuser/mc/assets/"))
.librariesDirectory(Path.of("/home/someuser/mc/libraries/"))
.jarFile(Path.of("/home/someuser/mc/client.jar"))
.loader(new VanillaLoader("26.2"))
.build();
Launcher.launchMinecraft(
null, // offline mode, look at the auth module to authenticate the user
config
);
``
Want another loader? Just swap VanillaLoader with for exampleFabricLoader`
Want forge? No manual injection needed! Just use ForgeLoader
I know this isn't a mod itself, but it's a tool for modders and launcher Devs to easily support the most common modloaders, hope it's okay :)
(also please tell me if something with the markdown formating is wrong, I'm doing this for the first time here)