Skip to main content

Diff decompiled versions of Minecraft

Project description

Shulkr

Discord Check New Commits PyPI version

Shulkr is a tool that decompiles multiple versions of Minecraft and commits each version to Git

Warning: You CANNOT publish any code generated by this tool. For more info, see the usage guidelines.

Requirements

  • Git
  • Python 3
  • JDK (>= 17 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 between A and B (inclusive), not including snapshots
  • A...B expands to all versions between A and B (inclusive), including snapshots

A and/or B can be omitted, defaulting to the version after the most recent commit and the latest supported version, 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

Note that you need to include -- before the versions when using negative versions, so the argument parser knows that the negative version is not an option:

shulkr -- ...1.19 -1.19

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.

--mappings

By default, Minecraft's bytecode is deobfuscated using yarn's mappings. You can also use --mappings mojang to use Mojang's official mappings.

If left unspecified, the mappings used to generate the previous commit are detected.

--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.

Experimental Options

--undo-renamed-vars / -u

When this option is enabled, local variables that were renamed in new versions will be reverted to their original names.

Changelog

See the changelog.

Contributing

See the contributing guide.

License

Licensed under the Apache License, Version 2.0.

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

shulkr-0.7.2.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

shulkr-0.7.2-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file shulkr-0.7.2.tar.gz.

File metadata

  • Download URL: shulkr-0.7.2.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for shulkr-0.7.2.tar.gz
Algorithm Hash digest
SHA256 48935028378c45eee3ca829d3d70e4605c185ff43a69f5a91a37c234b0b3a7b8
MD5 42fc84305e79093e5b449cafeffce8f1
BLAKE2b-256 9651f9a6353ba5adb84c6e01f55c99dcc353b0b5ef4bdd25cf44eb2e2473341e

See more details on using hashes here.

File details

Details for the file shulkr-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: shulkr-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for shulkr-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 89fc6db09eae39617cb900805c8bff191f635c30ee1650cb904b926d63436346
MD5 b9631f2e775f497304c9bb7549ec9b8c
BLAKE2b-256 833fddfee848cc825f214b037ca3bd53612d3d54f4132c73aa57fe1b7218bd05

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