Skip to main content

mcgen

Python utilities for downloading and processing Minecraft's generated data.

PyPI PyPI - Python Version Code style: black

Requirements

  • Python 3.8+
  • Java 11+ (for invoking the Minecraft server's data generator)

Installation

pip install mcgen

Usage

python -m mcgen --help
mcgen [-h] [--jarpath JARPATH] [--rawpath RAWPATH] [--outpath OUTPATH] [--version VERSION] [--manifest MANIFEST] [--processors [PROCESSORS [PROCESSORS ...]]] [--log LOG]

Download the Minecraft server jar for the specified version, invoke the data generator, and process the output.

optional arguments:
  -h, --help            show this help message and exit
  --jarpath JARPATH     Where to download and store the server jar. Default: temp/jars/minecraft_server.{version}.jar
  --rawpath RAWPATH     Where to store the raw server-generated files. Default: temp/raw/{version}
  --outpath OUTPATH     Where to write the final processed output. Default: temp/out/{version}
  --version VERSION     The server version to download and process. Defaults to latest snapshot.
  --manifest MANIFEST   Where to fetch the version manifest from. Defaults to Mojang's online copy.
  --processors [PROCESSORS [PROCESSORS ...]]
                        Which processors to use in processing the raw server-generated files. Defaults to a set of built-in processors.
  --log LOG             The level of verbosity at which to print log messages.

Processors

Processors are used to process the raw server-generated data and produce output. They are invoked one after the other, in the order they are defined.

To provide a custom set of processors, use the --processors option like so:

python -m mcgen --processors mcgen.processors.split_registries mcgen.processors.summarize_data

Built-in processors

Several built-in processors are provided in mcgen.processors:

Custom processors

Processors are Python modules containing a function with the following signature:

def process(ctx: Context, **options):
    ...
  • ctx contains information about the processing context
  • options is a key-value mapping of arbitrary data

21w39a

Note that in snapshot 21w39a the java command used to invoke the server generator changed:

# Prior to 21w39a:
java -cp {jar_path} net.minecraft.data.Main --server --reports

# From 21w39a onward:
java -DbundlerMainClass=net.minecraft.data.Main -jar {jar_path} --server --reports

If you need to generate data for versions prior to 21w39a, use the --cmd option with the older java command.

Metadata

Release files for mcgen 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcgen 0.8.0
File Size Uploaded
mcgen-0.8.0.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcgen 0.8.0
File Interpreter ABI Platform
mcgen-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 kB

Release files / mcgen-0.8.0.tar.gz

Download URL mcgen-0.8.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3734c1fa8d80bfc960f42d1e385bccbfc7a9d0f63999e0a58ecc8679f14085c8
BLAKE2b-256 checksum
How to use checksums
de6a2a6d59dfa3ea5a9a8746a684b796dab2de241e4df5f42453b6677bf74990
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.0a2 CPython/3.10.0 Linux/5.4.72-microsoft-standard-WSL2

Release files / mcgen-0.8.0-py3-none-any.whl

Download URL mcgen-0.8.0-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dd31573c81b796ace92ba88247b0c08d4254a549aafdbc255201d67852e8529
BLAKE2b-256 checksum
How to use checksums
b1ad83a0264ddace11bfc2a34de946a13c5ab4a13dd52b764224c6ec0408d6e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.0a2 CPython/3.10.0 Linux/5.4.72-microsoft-standard-WSL2

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page