/Burger

A simple tool for picking out information from the minecraft JARs, primarily useful for developers.

Primary LanguagePythonMIT LicenseMIT

Burger

Burger is a "framework" for automatically extracting data from the Minecraft game for the purpose of writing the protocol specification, interoperability, and other neat uses.

The Idea

Burger is made up of toppings, which can provide and satisfy simple dependencies, and which can be run all-together or just a few specifically. Each topping is then aggregated by munch.py into the whole and output as a JSON dictionary.

Usage

The simplest way to use Burger is to pass the -d or --download flag, which will download the specified minecraft client for you. This option can be specified multiple times. The downloaded jar will be saved in the working directory, and if it already exists the existing verison will be used.

$ python munch.py --download 1.13.2

To download the latest snapshot, -D or --download-latest can be used.

$ python munch.py -D

Alternatively, you can specify the client JAR by passing it as an argument.

$ python munch.py 1.8.jar

You can redirect the output from the default stdout by passing -o <path> or --output <path>. This is useful when combined with verbose output (-v or --verbose) so that the output doesn't go into the file.

$ python munch.py -D --output output.json

You can see what toppings are available by passing -l or --list.

$ python munch.py --list

You can also run specific toppings by passing a comma-delimited list to -t or --toppings. If a topping cannot be used because it's missing a dependency, it will output an error telling you what also needs to be included. Toppings will generally automatically load their dependencies, however.

$ python munch.py -D --toppings language,stats

The above example would only extract the language information, as well as the stats and achievements (both part of stats).