# mcextract
[![PyPI](https://img.shields.io/pypi/v/mcextract)](https://pypi.org/project/mcextract/)
[![Python](https://img.shields.io/pypi/pyversions/mcextract)](https://www.python.org/downloads//)
![Downloads](https://img.shields.io/pypi/dm/mcextract)
![Status](https://img.shields.io/pypi/status/mcextract)
[![Issues](https://img.shields.io/github/issues/legopitstop/mcextract)](https://github.com/legopitstop/mcextract/issues)
Extract assets and data from the Minecraft jar.
## Installation
Install the module with pip:
```bat
pip3 install mcextract
```
Update existing installation: `pip3 install mcextract --upgrade`
## Features
- Includes a UI and a command line extractor.
- Saves configuration for the next time you use it.
- Choose to extract the assets or data folders from the jar
- Compile the objects to get access to all sounds, langs, and other hidden assets that aren't in the jar.
- Choose which version to extract using a simple dropdown menu. (may experience some issues if your mc is located in diff folder)
- Data Generator for generating reports, and vanilla world generation files.
## Examples
### Run with UI
```py
import mcextract
app=mcextract.CTkClient()
app.mainloop()
```
### Run with the command line
```py
import mcextract
svr=mcextract.Server.from_args()
svr.run()
```
Now run the Python script using the commands listed below
## Command line commands
### extract
#### Arguments
| Name |Required| Description |
|--|--|--|
|`<fp>`|Yes| The jar file to extract. Located: `%appdata%\.minecraft\versions\VERSION\VERSION.jar`|
|`--assets`|| Extract all files in assets folder. |
|`--data`|| Extract all files in data folder. |
|`--output <directory>`|| The output directory. |
|`--eula`|Yes| Except the EULA. ||
#### Example
```
python -m mcextract extract "%appdata%\.minecraft\versions\1.20.1\1.20.1.jar" --assets --data --eula --output "%userprofile%\Downloads\Output"
```
### map
#### Arguments
| Name |Required| Description |
|--|--|--|
|`<index>`|Yes| The index JSON to map objects with. Located: `%appdata%\.minecraft\assets\indexes\INDEX.json`|
|`<objects>`| Yes | The directory that contains all objects. Located: `%appdata%\.minecraft\assets\objects`|
|`--output <directory>`|| The output directory. |
|`--eula`|Yes| Except the EULA. ||
#### Example
```
python -m mcextract map "%appdata%\.minecraft\assets\indexes\3.json" "%appdata%\.minecraft\assets\objects" --eula --output "%userprofile%\Downloads\Output"
```
### generate
#### Arguments
| Name |Required| Description | Example|
|--|--|--|--|
|`<version>`|Yes| The server jar version to download and use. |`1.20.1`|
|`--client`|| Generate client data. ||
|`--server`|| Generate server data. ||
|`--reports`|| Generate reports. ||
|`--output <directory>`|| The output directory. ||
|`--eula`|Yes| Except the EULA. ||
#### Example
```
python -m mcextract generate 1.20.1 --client --server --reports --eula --output "%userprofile%\Downloads\Output"
```
## Planned Features
- Add minimize or maximize JSON's.
Raw data
{
"_id": null,
"home_page": "https://github.com/legopitstop/mcextract",
"name": "mcextract",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "Minecraft,java,jar,assets,data,reports,UserFolder,customtkinter,ServerJars",
"author": "Legopitstop",
"author_email": "officiallegopitstop@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c8/c3/99ac330421a57b11b9cd1b070147aae453839925d727b67763df95caf070/mcextract-1.1.0.tar.gz",
"platform": null,
"description": "# mcextract\r\n\r\n[![PyPI](https://img.shields.io/pypi/v/mcextract)](https://pypi.org/project/mcextract/)\r\n[![Python](https://img.shields.io/pypi/pyversions/mcextract)](https://www.python.org/downloads//)\r\n![Downloads](https://img.shields.io/pypi/dm/mcextract)\r\n![Status](https://img.shields.io/pypi/status/mcextract)\r\n[![Issues](https://img.shields.io/github/issues/legopitstop/mcextract)](https://github.com/legopitstop/mcextract/issues)\r\n\r\nExtract assets and data from the Minecraft jar.\r\n\r\n## Installation\r\nInstall the module with pip:\r\n```bat\r\npip3 install mcextract\r\n```\r\nUpdate existing installation: `pip3 install mcextract --upgrade`\r\n\r\n## Features\r\n\r\n- Includes a UI and a command line extractor.\r\n- Saves configuration for the next time you use it.\r\n- Choose to extract the assets or data folders from the jar\r\n- Compile the objects to get access to all sounds, langs, and other hidden assets that aren't in the jar.\r\n- Choose which version to extract using a simple dropdown menu. (may experience some issues if your mc is located in diff folder)\r\n- Data Generator for generating reports, and vanilla world generation files.\r\n\r\n## Examples\r\n### Run with UI\r\n```py\r\nimport mcextract\r\n\r\napp=mcextract.CTkClient()\r\napp.mainloop()\r\n```\r\n### Run with the command line\r\n```py\r\nimport mcextract\r\n\r\nsvr=mcextract.Server.from_args()\r\nsvr.run()\r\n```\r\nNow run the Python script using the commands listed below\r\n\r\n## Command line commands\r\n### extract\r\n#### Arguments\r\n| Name |Required| Description |\r\n|--|--|--|\r\n|`<fp>`|Yes| The jar file to extract. Located: `%appdata%\\.minecraft\\versions\\VERSION\\VERSION.jar`|\r\n|`--assets`|| Extract all files in assets folder. |\r\n|`--data`|| Extract all files in data folder. |\r\n|`--output <directory>`|| The output directory. |\r\n|`--eula`|Yes| Except the EULA. ||\r\n\r\n#### Example\r\n```\r\npython -m mcextract extract \"%appdata%\\.minecraft\\versions\\1.20.1\\1.20.1.jar\" --assets --data --eula --output \"%userprofile%\\Downloads\\Output\"\r\n```\r\n\r\n### map\r\n#### Arguments\r\n| Name |Required| Description |\r\n|--|--|--|\r\n|`<index>`|Yes| The index JSON to map objects with. Located: `%appdata%\\.minecraft\\assets\\indexes\\INDEX.json`|\r\n|`<objects>`| Yes | The directory that contains all objects. Located: `%appdata%\\.minecraft\\assets\\objects`|\r\n|`--output <directory>`|| The output directory. |\r\n|`--eula`|Yes| Except the EULA. ||\r\n\r\n#### Example\r\n```\r\npython -m mcextract map \"%appdata%\\.minecraft\\assets\\indexes\\3.json\" \"%appdata%\\.minecraft\\assets\\objects\" --eula --output \"%userprofile%\\Downloads\\Output\"\r\n```\r\n\r\n### generate\r\n#### Arguments\r\n| Name |Required| Description | Example|\r\n|--|--|--|--|\r\n|`<version>`|Yes| The server jar version to download and use. |`1.20.1`|\r\n|`--client`|| Generate client data. ||\r\n|`--server`|| Generate server data. ||\r\n|`--reports`|| Generate reports. ||\r\n|`--output <directory>`|| The output directory. ||\r\n|`--eula`|Yes| Except the EULA. ||\r\n\r\n#### Example\r\n```\r\npython -m mcextract generate 1.20.1 --client --server --reports --eula --output \"%userprofile%\\Downloads\\Output\"\r\n```\r\n\r\n## Planned Features\r\n\r\n- Add minimize or maximize JSON's.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Extract assets and data from the Minecraft jar.",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/legopitstop/mcextract"
},
"split_keywords": [
"minecraft",
"java",
"jar",
"assets",
"data",
"reports",
"userfolder",
"customtkinter",
"serverjars"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c8c399ac330421a57b11b9cd1b070147aae453839925d727b67763df95caf070",
"md5": "2b9d5ad21a70e187acb9c9530b799d74",
"sha256": "559c0ba56bbbdaae42e21a9b28a816fc55f50f1fb4eb4cd249f80a1ccfd6fa63"
},
"downloads": -1,
"filename": "mcextract-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2b9d5ad21a70e187acb9c9530b799d74",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 16993,
"upload_time": "2023-08-18T22:10:42",
"upload_time_iso_8601": "2023-08-18T22:10:42.002592Z",
"url": "https://files.pythonhosted.org/packages/c8/c3/99ac330421a57b11b9cd1b070147aae453839925d727b67763df95caf070/mcextract-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-18 22:10:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "legopitstop",
"github_project": "mcextract",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "mcextract"
}