{"id":22447171,"url":"https://github.com/clabe45/shulkr","last_synced_at":"2025-08-25T00:35:05.220Z","repository":{"id":40334339,"uuid":"438055883","full_name":"clabe45/shulkr","owner":"clabe45","description":"Diff decompiled versions of Minecraft","archived":false,"fork":false,"pushed_at":"2024-04-12T02:18:30.000Z","size":450,"stargazers_count":33,"open_issues_count":18,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-14T07:42:21.981Z","etag":null,"topics":["decompile","game","git","hacktoberfest","minecraft","research-tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clabe45.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-13T23:30:00.000Z","updated_at":"2024-05-03T01:49:09.508Z","dependencies_parsed_at":"2024-05-03T01:48:55.288Z","dependency_job_id":"5039b019-a7a3-4b29-998d-032b291ae254","html_url":"https://github.com/clabe45/shulkr","commit_stats":{"total_commits":324,"total_committers":1,"mean_commits":324.0,"dds":0.0,"last_synced_commit":"5ed1d1df46c144045c890193104d3525a090fa9f"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clabe45%2Fshulkr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clabe45%2Fshulkr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clabe45%2Fshulkr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clabe45%2Fshulkr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clabe45","download_url":"https://codeload.github.com/clabe45/shulkr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228407858,"owners_count":17915083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decompile","game","git","hacktoberfest","minecraft","research-tool"],"created_at":"2024-12-06T04:14:55.059Z","updated_at":"2024-12-06T04:14:55.669Z","avatar_url":"https://github.com/clabe45.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shulkr\n\n[![Discord](https://img.shields.io/discord/992622345334292542)](https://discord.gg/GDSft8kHWg)\n![Check New Commits](https://github.com/clabe45/shulkr/actions/workflows/check.yml/badge.svg)\n[![PyPI version](https://badge.fury.io/py/shulkr.svg)](https://badge.fury.io/py/shulkr)\n\nShulkr is a tool that decompiles multiple versions of Minecraft and commits each\nversion to Git\n\n**Warning: You CANNOT publish any code generated by this tool. For more info,\nsee the [usage guidelines].**\n\n## Requirements\n\n- Git\n- Python 3\n- JDK (\u003e= 17 for Minecraft 1.18 and above)\n\n## Installation\n\n```\npip install shulkr\n```\n\n## Usage\n\n```sh\nshulkr 1.16 1.17 1.18\n```\n\nThis will generate a commit with the decompiled source code for Minecraft 1.16,\n1.17 and 1.18 in the current working directory:\n\n```\n204b37c (HEAD -\u003e main, tag: 1.18) version 1.18\n86dc440 (tag: 1.17) version 1.17\n5d13494 (tag: 1.16) version 1.16\n```\n\nNote: It's okay to skip versions. Shulkr generates the complete source code for\neach version before committing to git, so you can include as many or as little\nintermediate versions as you would like.\n\n## Version Patterns\n\nRanges of versions can be specified with `..` and `...`:\n- `A..B` expands to all versions between `A` and `B` (inclusive), *not*\n  including snapshots\n- `A...B` expands to all versions between `A` and `B` (inclusive), including\n  snapshots\n\n`A` and/or `B` can be omitted, defaulting to the version after the most recent\ncommit and the latest supported version, respectively.\n\nA *negative pattern* removes all matching versions that came before it. To\nnegate a pattern, add `-`. The following pattern expands to all versions after\n`A`, up to and including `B` (the order is important):\n- `A...B -A`\n\nNote that you need to include `--` before the versions when using negative\nversions, so the argument parser knows that the negative version is not an\noption:\n\n```sh\nshulkr -- ...1.19 -1.19\n```\n\n## Options\n\n### `--repo` / `-p`\n\nBy default the source code is generated in the current working directory. To\nspecify a different location:\n\n```sh\nshulkr --repo minecraft-sources 1.17..\n```\n\nIf the directory does not exist, a new git repo will be created there.\n\n### `--mappings`\n\nBy default, Minecraft's bytecode is deobfuscated using [yarn's] mappings. You\ncan also use `--mappings mojang` to use Mojang's official mappings.\n\nIf left unspecified, the mappings used to generate the previous commit are\ndetected.\n\n### `--message` / `-m`\n\nThis option lets you customize the commit message format:\n\n```sh\nshulkr -m \"Minecraft {}\" 1.18-rc4\n```\n\n### `--no-tags` / `-T`\n\nBy default, each commit is tagged with the name of its Minecraft version. This\ncan be disabled with `--no-tags`.\n\n## Experimental Options\n\n### `--undo-renamed-vars` / `-u`\n\nWhen this option is enabled, local variables that were renamed in new versions\nwill be reverted to their original names.\n\n## Changelog\n\nSee the [changelog].\n\n## Contributing\n\nSee the [contributing guide].\n\n## License\n\nLicensed under the Apache License, Version 2.0.\n\n[yarn's]: https://github.com/FabricMC/yarn\n[Fork]: https://github.com/clabe45/shulkr/fork\n[changelog]: ./docs/changelog.md\n[usage guidelines]: ./docs/usage-guidelines.md\n[contributing guide]: ./docs/contributing.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclabe45%2Fshulkr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclabe45%2Fshulkr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclabe45%2Fshulkr/lists"}