aboutsummaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'codegen')
-rwxr-xr-xcodegen/genregistries.py6
-rwxr-xr-xcodegen/lib/extract.py34
-rwxr-xr-xcodegen/migrate.py4
3 files changed, 26 insertions, 18 deletions
diff --git a/codegen/genregistries.py b/codegen/genregistries.py
index 01e84cb3..b867903b 100755
--- a/codegen/genregistries.py
+++ b/codegen/genregistries.py
@@ -15,9 +15,9 @@ def generate(version_id: str):
lib.code.inventory.update_menus(registries['minecraft:menu']['entries'])
- block_tags = lib.extract.get_registry_tags(version_id, 'blocks')
- item_tags = lib.extract.get_registry_tags(version_id, 'items')
- fluid_tags = lib.extract.get_registry_tags(version_id, 'fluids')
+ block_tags = lib.extract.get_registry_tags(version_id, 'block')
+ item_tags = lib.extract.get_registry_tags(version_id, 'item')
+ fluid_tags = lib.extract.get_registry_tags(version_id, 'fluid')
lib.code.tags.generate_tags(block_tags, 'blocks', 'Block')
lib.code.tags.generate_tags(item_tags, 'items', 'Item')
diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py
index d3bd46d3..da69b753 100755
--- a/codegen/lib/extract.py
+++ b/codegen/lib/extract.py
@@ -1,8 +1,8 @@
# Extracting data from the Minecraft jars
from typing import TYPE_CHECKING
-from lib.download import get_server_jar, get_burger, get_client_jar, get_pixlyzer, get_yarn_data, get_fabric_api_versions, get_fabric_loader_versions
-from lib.utils import get_dir_location
+from lib.download import get_mappings_for_version, get_server_jar, get_burger, get_client_jar, get_pixlyzer, get_yarn_data, get_fabric_api_versions, get_fabric_loader_versions
+from lib.utils import get_dir_location, to_camel_case, upper_first_letter
from zipfile import ZipFile
import subprocess
import requests
@@ -281,14 +281,22 @@ def get_en_us_lang(version_id: str):
# this is very much not ideal.
if TYPE_CHECKING: from codegen.lib.mappings import Mappings
-def get_packet_list(burger_data, mappings: 'Mappings'):
- packet_list = list(burger_data[0]['packets']['packet'].values())
-
- current_packet_id = 0
- for packet in packet_list:
- if packet['id'] == -1:
- packet['id'] = current_packet_id
- print(packet)
- current_packet_id += 1
-
- return packet_list
+def get_packet_list(version_id: str):
+ if version_id != '1.21':
+ return []
+
+ generate_data_from_server_jar(version_id)
+ with open(get_dir_location(f'__cache__/generated-{version_id}/reports/packets.json'), 'r') as f:
+ packets_report = json.load(f)
+ packet_list = []
+ for state, state_value in packets_report.items():
+ for direction, direction_value in state_value.items():
+ for packet_resourcelocation, packet_value in direction_value.items():
+ assert packet_resourcelocation.startswith('minecraft:')
+ packet_resourcelocation = upper_first_letter(to_camel_case(packet_resourcelocation[len('minecraft:'):]))
+ packet_list.append({
+ 'state': state,
+ 'direction': direction,
+ 'name': packet_resourcelocation,
+ 'id': packet_value['protocol_id']
+ })
diff --git a/codegen/migrate.py b/codegen/migrate.py
index 2be85643..b390ce40 100755
--- a/codegen/migrate.py
+++ b/codegen/migrate.py
@@ -31,8 +31,8 @@ new_version_id = sys.argv[1]
new_mappings = lib.download.get_mappings_for_version(new_version_id)
new_burger_data = lib.extract.get_burger_data_for_version(new_version_id)
-old_packet_list = lib.extract.get_packet_list(old_burger_data, old_mappings)
-new_packet_list = lib.extract.get_packet_list(new_burger_data, new_mappings)
+old_packet_list = lib.extract.get_packet_list(old_version_id)
+new_packet_list = lib.extract.get_packet_list(new_version_id)
# old_packets: dict[PacketIdentifier, str] = {}