Skip to content
/ mmi Public

Minecraft Mod Installer. Install Minecraft mods, resource packs and a modloader from a single config file.

License

Notifications You must be signed in to change notification settings

expeehaa/mmi

Repository files navigation

MMI

MMI is some Ruby code that should make downloading and installing modloaders, mods, resource packs and other files for Minecraft easier. Configuring the downloads/installs is done by reading a YAML file.

Ideally, a user would not need to know or write any YAML to create a configuration file. This is still work in progress.

The application is currently CLI-only, but should work on Linux, MacOS and Windows.

Installation

Prerequisites

It is recommended to use MMI with Ruby 3.0 or higher. While lower versions might work, further development is expected to ignore any specifics that may render those versions unusable.

Steps

Installation through rubygems.org

Disclaimer: While MMI releases are published on rubygems.org, they might not reflect current development. If something does not work, try the manual installation.

$ gem install mmi

Manual installation

Clone the repository and navigate into its root directory.

$ git clone https://github.com/expeehaa/mmi.git
# or
$ hg clone https://github.com/expeehaa/mmi.git

$ cd mmi

Install gem dependencies using bundler

$ bundle install

If you get an error saying the lockfile requires bundler version 2.0+, install it first.

$ gem install bundler

Install the gem.

$ rake install

Basic usage

Syntax: mmi <config file> [action=install]

	where action is one of
		install  - Install the modloader and assets as specified in the config file.
		validate - Validate the config file.
		update   - Update the config file interactively.

The script currently does not support any arguments besides the ones listed above. Trying to get help by running mmi --help or similar will not work.

Example configs

Example configuration files can be found in examples/. They can be parsed by the MMI version they come with. Example configurations download and install files into tmp/ so that your .minecraft folder will stay unharmed.

The files are intended to provide an overview of the different features of MMI. They are not intended to create a working modded Minecraft environment and will therefore not be updated for each new Minecraft version.

TODOs

  • Improve argument parsing.

  • Write tests.

  • Add command to interactively create a config file.

  • Be able to update/change modloader interactively.

  • Be able to remove assets interactively.

  • Think about advising users to use another file extension than .yaml (e.g. .mmi, .mmiconf).

  • Try to make a Java-executable .jar file using warbler and JRuby.

Versioning

MMI uses semantic versioning with major, minor and patch versions.

Versions are coupled to the configuration file specification. This means, within the same major version, every release must be backwards-compatible regarding config file interpreting and MMI releases with a lower minor version must still be able to interpret a config file with a higher minor version (although they are allowed and expected to not support some configurations).

An exception to this rule are all releases with the major version 0. There, within the same minor version, backwards compatibility can be expected, but different minor versions will (most likely) not be compatible.

Contributing

Contributions are very welcome, including feature/bug requests. Before implementing a (larger) feature, consider opening a ticket to discuss the implementation or feature.

If you intend to create a pull request, please choose a branch name describing its changes (i.e. not some generic term like master or fix, but e.g. fix_typo or add_interactive_update_command).

Please try to follow the existing coding style as close as possible. Some basic rules are specified in the .editorconfig file, and Rubocop is also available to help. Every commit should pass Rubocop’s inspection.

About

Minecraft Mod Installer. Install Minecraft mods, resource packs and a modloader from a single config file.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published