From 107f945a2383cb0f9ba8de458c7764e0afff026a Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 21 Jun 2022 18:33:17 -0500 Subject: Add get_generator_mod_data Uses u9g's mod: https://github.com/u9g/minecraft-data-generator-server --- codegen/lib/download.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'codegen/lib/download.py') diff --git a/codegen/lib/download.py b/codegen/lib/download.py index e05d9a93..fbc4f749 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -19,12 +19,20 @@ def get_burger(): os.system('cd downloads/Burger && pip install six jawa') +def get_generator_mod(): + if not os.path.exists(get_dir_location('downloads/minecraft-data-generator-server')): + print('\033[92mDownloading u9g/minecraft-data-generator-server...\033[m') + os.system( + f'cd {get_dir_location("downloads")} && git clone https://github.com/u9g/minecraft-data-generator-server && cd minecraft-data-generator-server && git pull') + return get_dir_location('downloads/minecraft-data-generator-server') + + def get_version_manifest(): if not os.path.exists(get_dir_location(f'downloads/version_manifest.json')): print( f'\033[92mDownloading version manifest...\033[m') version_manifest_data = requests.get( - 'https://launchermeta.mojang.com/mc/game/version_manifest.json').json() + 'https://piston-meta.mojang.com/mc/game/version_manifest_v2.json').json() with open(get_dir_location(f'downloads/version_manifest.json'), 'w') as f: json.dump(version_manifest_data, f) else: @@ -86,3 +94,30 @@ def get_mappings_for_version(version_id: str): with open(get_dir_location(f'downloads/mappings-{version_id}.txt'), 'r') as f: mappings_text = f.read() return Mappings.parse(mappings_text) + + +def get_yarn_versions(): + # https://meta.fabricmc.net/v2/versions/yarn + if not os.path.exists(get_dir_location('downloads/yarn_versions.json')): + print('\033[92mDownloading yarn versions...\033[m') + yarn_versions_data = requests.get( + 'https://meta.fabricmc.net/v2/versions/yarn').json() + with open(get_dir_location('downloads/yarn_versions.json'), 'w') as f: + json.dump(yarn_versions_data, f) + else: + with open(get_dir_location('downloads/yarn_versions.json'), 'r') as f: + yarn_versions_data = json.load(f) + return yarn_versions_data + + +def get_yarn_data(version_id: str): + for version in get_yarn_versions(): + if version['gameVersion'] == version_id: + return version + + +def clear_version_cache(): + files = [ + 'version_manifest.json', + 'yarn_versions.json' + ] -- cgit v1.2.3 From 317567b77a9e339b5dc9a4832b1ce4c6b045dfe7 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 21 Jun 2022 19:05:44 -0500 Subject: Improve clear_version_cache --- codegen/genblocks.py | 3 +-- codegen/lib/download.py | 11 +++++++++++ codegen/lib/utils.py | 4 +++- codegen/migrate.py | 3 ++- 4 files changed, 17 insertions(+), 4 deletions(-) (limited to 'codegen/lib/download.py') diff --git a/codegen/genblocks.py b/codegen/genblocks.py index 8cfa1b7d..174d2e16 100644 --- a/codegen/genblocks.py +++ b/codegen/genblocks.py @@ -5,11 +5,10 @@ import lib.code.utils import lib.download import lib.extract import lib.utils -import sys -import os version_id = lib.code.version.get_version_id() + lib.extract.get_generator_mod_data(version_id, 'blockCollisionShapes') # lib.download.get_burger() diff --git a/codegen/lib/download.py b/codegen/lib/download.py index fbc4f749..e9712f8d 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -5,7 +5,9 @@ import json import os # make sure the downloads directory exists +print('Making downloads') if not os.path.exists(get_dir_location('downloads')): + print('Made downloads directory.', get_dir_location('downloads')) os.mkdir(get_dir_location('downloads')) @@ -117,7 +119,16 @@ def get_yarn_data(version_id: str): def clear_version_cache(): + print('\033[92mClearing version cache...\033[m') files = [ 'version_manifest.json', 'yarn_versions.json' ] + for file in files: + if os.path.exists(get_dir_location(f'downloads/{file}')): + os.remove(get_dir_location(f'downloads/{file}')) + + os.system( + f'cd {get_dir_location("downloads/Burger")} && git pull') + os.system( + f'cd {get_dir_location("downloads/minecraft-data-generator-server")} && git pull') diff --git a/codegen/lib/utils.py b/codegen/lib/utils.py index 3887bb35..c3d293c0 100644 --- a/codegen/lib/utils.py +++ b/codegen/lib/utils.py @@ -18,9 +18,11 @@ def to_camel_case(name: str): s = f'_{s}' return s + def upper_first_letter(name: str): return name[0].upper() + name[1:] + def padded_hex(n: int): return f'0x{n:02x}' @@ -55,4 +57,4 @@ def group_packets(packets: list[PacketIdentifier]): def get_dir_location(name: str): - return os.path.join(os.path.dirname(__file__), '..', name) + return os.path.join(os.path.dirname(os.path.dirname(__file__)), name) diff --git a/codegen/migrate.py b/codegen/migrate.py index cdffb2de..e5b17770 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -6,7 +6,8 @@ import lib.code.packet import lib.download import lib.extract import sys -import os + +lib.download.clear_version_cache() old_version_id = lib.code.version.get_version_id() old_mappings = lib.download.get_mappings_for_version(old_version_id) -- cgit v1.2.3