diff options
Diffstat (limited to 'codegen/lib')
| -rw-r--r-- | codegen/lib/download.py | 17 | ||||
| -rw-r--r-- | codegen/lib/extract.py | 34 |
2 files changed, 41 insertions, 10 deletions
diff --git a/codegen/lib/download.py b/codegen/lib/download.py index 0d6668bd..e05d9a93 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -63,16 +63,13 @@ def get_client_jar(version_id: str): f.write(requests.get(client_jar_url).content) -def get_burger_data_for_version(version_id: str): - if not os.path.exists(get_dir_location(f'downloads/burger-{version_id}.json')): - get_burger() - get_client_jar(version_id) - - os.system( - f'cd {get_dir_location("downloads/Burger")} && python munch.py ../client-{version_id}.jar --output ../burger-{version_id}.json' - ) - with open(get_dir_location(f'downloads/burger-{version_id}.json'), 'r') as f: - return json.load(f) +def get_server_jar(version_id: str): + if not os.path.exists(get_dir_location(f'downloads/server-{version_id}.jar')): + package_data = get_version_data(version_id) + print('\033[92mDownloading server jar...\033[m') + server_jar_url = package_data['downloads']['server']['url'] + with open(get_dir_location(f'downloads/server-{version_id}.jar'), 'wb') as f: + f.write(requests.get(server_jar_url).content) def get_mappings_for_version(version_id: str): diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py new file mode 100644 index 00000000..82ae257d --- /dev/null +++ b/codegen/lib/extract.py @@ -0,0 +1,34 @@ +# Extracting data from the Minecraft jars + +from lib.download import get_server_jar, get_burger, get_client_jar +from lib.utils import get_dir_location +import json +import os + + +def generate_data_from_server_jar(version_id: str): + if os.path.exists(get_dir_location(f'downloads/generated-{version_id}')): + return + + get_server_jar(version_id) + os.system( + f'java -jar {get_dir_location(f"downloads/server-{version_id}.jar")} --all --output {get_dir_location(f"downloads/generated-{version_id}")}' + ) + + +def get_block_states(version_id: str): + generate_data_from_server_jar(version_id) + with open(get_dir_location(f'downloads/generated-{version_id}/reports/blocks.json'), 'r') as f: + return json.load(f) + + +def get_burger_data_for_version(version_id: str): + if not os.path.exists(get_dir_location(f'downloads/burger-{version_id}.json')): + get_burger() + get_client_jar(version_id) + + os.system( + f'cd {get_dir_location("downloads/Burger")} && python munch.py ../client-{version_id}.jar --output ../burger-{version_id}.json' + ) + with open(get_dir_location(f'downloads/burger-{version_id}.json'), 'r') as f: + return json.load(f) |
