Metadata-Version: 2.1
Name: mcextract
Version: 1.1.0
Summary: Extract assets and data from the Minecraft jar.
Home-page: https://github.com/legopitstop/mcextract
Author: Legopitstop
Author-email: officiallegopitstop@gmail.com
License: MIT
Keywords: Minecraft,java,jar,assets,data,reports,UserFolder,customtkinter,ServerJars
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE

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