Decompile multiple versions of Minecraft with a single command (for research)
Project description
Shulkr
Shulkr is a tool that decompiles multiple versions of Minecraft and commits each version to Git
Version 0.3 altered the directory structure of the generated sources. It is recommended to regenerate all commits after upgrading. See the changelog for more info.
Requirements
- Git
- JDK (>= 17 for Minecraft 1.18 and above)
- Gradle (>= 7.3 for Minecraft 1.18 and above)
Installation
pip install shulkr
Usage
shulkr 1.16 1.17 1.18
This will generate a commit with the decompiled source code for Minecraft 1.16, 1.17 and 1.18 in the current working directory:
204b37c (HEAD -> main, tag: 1.18) version 1.18
86dc440 (tag: 1.17) version 1.17
5d13494 (tag: 1.16) version 1.16
Note: It's okay to skip versions. Shulkr generates the complete source code for each version before committing to git, so you can include as many or as little intermediate versions as you would like.
Version Patterns
Ranges of versions can be specified with ..
and ...
:
A..B
expands to all versions betweenA
andB
(inclusive), not including snapshotsA...B
expands to all versions betweenA
andB
(inclusive), including snapshots
A
and/or B
can be omitted, defaulting to the earliest and latest supported
versions, respectively.
A negative pattern removes all matching versions that came before it. To
negate a pattern, add -
. The following pattern expands to all versions after
A
, up to and including B
(the order is important):
A...B -A
Options
--repo
/ -p
By default the source code is generated in the current working directory. To specify a different location:
shulkr --repo minecraft-sources 1.17..
If the directory does not exist, a new git repo will be created there.
--message
/ -m
This option lets you customize the commit message format:
shulkr -m "Minecraft {}" 1.18-rc4
--no-tags
/ -T
By default, each commit is tagged with the name of its Minecraft version. This
can be disabled with --no-tags
.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
Licensed under the Apache License, Version 2.0.
Project details
Release history Release notifications | RSS feed
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 shulkr-0.3.0.tar.gz
.
File metadata
- Download URL: shulkr-0.3.0.tar.gz
- Upload date:
- Size: 3.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df755285c5f1ba5af0f52ccca856635ac99c04beaf86e2f25fa475571e94356d |
|
MD5 | 4e4610ad3ffccf89e58b16d0ac6d1820 |
|
BLAKE2b-256 | 7c4648f5f43455e461b3373220af92a64f7d119534864b5170cd41dd2018346e |
File details
Details for the file shulkr-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: shulkr-0.3.0-py3-none-any.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3576ad8d8626c3656ef3db9a77c8605298b5b05d3ec542c5c856339f318c332 |
|
MD5 | a8816c3c1e690905beed8c1023526dab |
|
BLAKE2b-256 | 5996748556c9b30e3da1fe522c8c1d6241cbd691c5896545b513dc913c9c2e0c |