Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcgen-0.8.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

mcgen-0.8.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file mcgen-0.8.0.tar.gz.

File metadata

  • Download URL: mcgen-0.8.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0a2 CPython/3.10.0 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for mcgen-0.8.0.tar.gz
Algorithm Hash digest
SHA256 3734c1fa8d80bfc960f42d1e385bccbfc7a9d0f63999e0a58ecc8679f14085c8
MD5 110efe16f0cdbbee3b95010db8ac46ea
BLAKE2b-256 de6a2a6d59dfa3ea5a9a8746a684b796dab2de241e4df5f42453b6677bf74990

See more details on using hashes here.

File details

Details for the file mcgen-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: mcgen-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0a2 CPython/3.10.0 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for mcgen-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dd31573c81b796ace92ba88247b0c08d4254a549aafdbc255201d67852e8529
MD5 5296e19f4717f876299bb3a24f37799d
BLAKE2b-256 b1ad83a0264ddace11bfc2a34de946a13c5ab4a13dd52b764224c6ec0408d6e8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page