Python utilities for downloading and processing Minecraft's generated data.
Project description
mcgen
Python utilities for downloading and processing Minecraft's generated data.
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
:
write_version_file
- Write the game version to a file.convert_json_files
- Convert json files into another form.simplify_blocks
- Create an optimized summary of blocks.split_registries
- Splitregistries.json
into separate files.summarize_data
- Create a summary of each vanilla registry.summarize_worldgen
- Create a summary of worldgen reports.create_all_tags_data_pack
- Generate a data pack with "all" tags.
Custom processors
Processors are Python modules containing a function with the following signature:
def process(ctx: Context, **options):
...
ctx
contains information about the processing contextoptions
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3734c1fa8d80bfc960f42d1e385bccbfc7a9d0f63999e0a58ecc8679f14085c8 |
|
MD5 | 110efe16f0cdbbee3b95010db8ac46ea |
|
BLAKE2b-256 | de6a2a6d59dfa3ea5a9a8746a684b796dab2de241e4df5f42453b6677bf74990 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dd31573c81b796ace92ba88247b0c08d4254a549aafdbc255201d67852e8529 |
|
MD5 | 5296e19f4717f876299bb3a24f37799d |
|
BLAKE2b-256 | b1ad83a0264ddace11bfc2a34de946a13c5ab4a13dd52b764224c6ec0408d6e8 |