Open Minecraft Launcher
(free and open source)
Open Minecraft Launcher is a framework to create custom launchers for Minecraft mod-packs. It provides several sub-systems to safely control and execute tasks such as
- Installation/configuration and launch of a Minecraft client
- Installation of Forge
- Installation and automated update of Minecraft mods and mod-packs
Minecraft and Forge Setup Services
Behind the scenes Open MCL uses the original Minecraft Launcher and Forge installer to always run the appropriate installation procedure required by Minecraft or Forge. Both plugins (jars) are dynamically linked on demand and not bundled with Open MCL.
Software Dependency Management
Each software asset to be installed or updated is defined by a package descriptor. This package descriptor contains general information such as package name, version, download URL, checksum and dependencies to other required or optional packages. All package descriptors are maintained in a package repository (a set of folders and plain-text files).
All downloads are routed through the download manager, which takes care of package integrity and timeouts. Besides direct download links, package descriptors can also refer to an advertising page in its download URL. That means, that the actual download has to be performed manually by the user in his/her external system web browser. The download manager detects it and triggers a user interface to delegate the download task.
The update server is simply an HTTP server providing the content of the package repository for download in some location. The update server component supports server side locking and transactions which allow for safe modifications to the package repository without shutting down the server.
A lot of tasks during installation of software are usually prone to inconsistencies when interrupted. Hence, all installation tasks are persistently stored in a database and can be restarted after system crashes or suspension. Once finished, a task gets removed from the data base.
Open MCL includes tools to access and modify several different configuration file formats in Minecraft installations such as NBT (using
jnbt) and name-value list based on either "name:value" or "name=value" scheme.
License: GPL v3
Prerequisites for Developers
- 05.11.2017: v0.0.11 [r1423]
- Mod: aligned with changes in latest launcher.jar
- 11.01.2017: v0.0.9 [r1146]
- Mod: aligned with changes in latest org.cakelab.json package