From 9c0b6f6631f861cb1582c6bba41d2931ee26bf16 Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 16 Jun 2022 20:59:19 -0500 Subject: 22w24a & update packets when they're modified --- codegen/lib/download.py | 2 +- codegen/migrate.py | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'codegen') diff --git a/codegen/lib/download.py b/codegen/lib/download.py index 7d14a3a3..58074634 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -23,7 +23,7 @@ def get_version_manifest(): 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.json').json() with open(f'downloads/version_manifest.json', 'w') as f: json.dump(version_manifest_data, f) else: diff --git a/codegen/migrate.py b/codegen/migrate.py index 98b701bf..95a6ac4d 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -19,18 +19,24 @@ new_packet_list = list(new_burger_data[0]['packets']['packet'].values()) old_packets: dict[PacketIdentifier, str] = {} +old_packets_data: dict[PacketIdentifier, dict] = {} new_packets: dict[PacketIdentifier, str] = {} +new_packets_data: dict[PacketIdentifier, dict] = {} for packet in old_packet_list: assert packet['class'].endswith('.class') packet_name = old_mappings.get_class(packet['class'][:-6]) - old_packets[PacketIdentifier( - packet['id'], packet['direction'].lower(), fix_state(packet['state']))] = packet_name + packet_ident = PacketIdentifier( + packet['id'], packet['direction'].lower(), fix_state(packet['state'])) + old_packets[packet_ident] = packet_name + old_packets_data[packet_ident] = packet for packet in new_packet_list: assert packet['class'].endswith('.class') packet_name = new_mappings.get_class(packet['class'][:-6]) - new_packets[PacketIdentifier( - packet['id'], packet['direction'].lower(), fix_state(packet['state']))] = packet_name + packet_ident = PacketIdentifier( + packet['id'], packet['direction'].lower(), fix_state(packet['state'])) + new_packets[packet_ident] = packet_name + new_packets_data[packet_ident] = packet # find removed packets removed_packets: list[PacketIdentifier] = [] @@ -63,13 +69,15 @@ for (direction, state), packets in group_packets(list(changed_packets.keys())).i print() -# find added packets -added_packets: list[PacketIdentifier] = [] +# find added/changed packets +added_or_changed_packets: list[PacketIdentifier] = [] for packet, packet_name in new_packets.items(): if packet_name not in old_packets.values(): - added_packets.append(packet) + added_or_changed_packets.append(packet) print('Added packet:', packet, packet_name) -for packet in added_packets: + if new_packets_data[packet].get('instructions') != old_packets_data[packet].get('instructions'): + print('hmm') +for packet in added_or_changed_packets: lib.code.packet.generate_packet( new_burger_data[0]['packets']['packet'], new_mappings, packet.packet_id, packet.direction, packet.state) -- cgit v1.2.3 From 392c553d5688f3d5ad19c4a861c0239c914e3578 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 21 Jun 2022 19:48:01 -0500 Subject: Force the generator mod to support snapshots --- codegen/lib/download.py | 25 ++++++++++++++++++++++++- codegen/lib/extract.py | 14 ++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) (limited to 'codegen') diff --git a/codegen/lib/download.py b/codegen/lib/download.py index e9712f8d..db21145c 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -1,4 +1,5 @@ from lib.utils import get_dir_location +import xml.etree.ElementTree as ET from .mappings import Mappings import requests import json @@ -118,11 +119,33 @@ def get_yarn_data(version_id: str): return version +def get_fabric_api_versions(): + # https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml + if not os.path.exists(get_dir_location('downloads/fabric_api_versions.json')): + print('\033[92mDownloading Fabric API versions...\033[m') + fabric_api_versions_xml_text = requests.get( + 'https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml').text + # parse xml + fabric_api_versions_data_xml = ET.fromstring( + fabric_api_versions_xml_text) + fabric_api_versions = [] + for version_el in fabric_api_versions_data_xml.find('versioning').find('versions').findall('version'): + fabric_api_versions.append(version_el.text) + + with open(get_dir_location('downloads/fabric_api_versions.json'), 'w') as f: + f.write(json.dumps(fabric_api_versions)) + else: + with open(get_dir_location('downloads/fabric_api_versions.json'), 'r') as f: + fabric_api_versions = json.loads(f.read()) + return fabric_api_versions + + def clear_version_cache(): print('\033[92mClearing version cache...\033[m') files = [ 'version_manifest.json', - 'yarn_versions.json' + 'yarn_versions.json', + 'fabric_api_versions.json' ] for file in files: if os.path.exists(get_dir_location(f'downloads/{file}')): diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py index 893b8d5c..4c2d2399 100644 --- a/codegen/lib/extract.py +++ b/codegen/lib/extract.py @@ -1,6 +1,6 @@ # Extracting data from the Minecraft jars -from lib.download import get_server_jar, get_burger, get_client_jar, get_generator_mod, get_yarn_data +from lib.download import get_server_jar, get_burger, get_client_jar, get_generator_mod, get_yarn_data, get_fabric_api_versions from lib.utils import get_dir_location import json import os @@ -61,7 +61,9 @@ def get_generator_mod_data(version_id: str, category: str): # looks like 1.19+build.1 yarn_version = yarn_data['version'] - # the mod has the minecraft version hard-coded by default, so we just change the gradle.properties + fabric_api_version = get_fabric_api_versions()[-1] + + # the mod has the minecraft version hard-coded by default, so we just change the gradle.properties and fabric.mod.json with open(get_dir_location(f'{generator_mod_dir}/gradle.properties'), 'r') as f: lines = f.readlines() with open(get_dir_location(f'{generator_mod_dir}/gradle.properties'), 'w') as f: @@ -70,7 +72,15 @@ def get_generator_mod_data(version_id: str, category: str): line = f'minecraft_version={version_id}\n' if line.startswith('yarn_mappings='): line = f'yarn_mappings={yarn_version}\n' + if line.startswith('fabric_version='): + line = f'fabric_version={fabric_api_version}\n' f.write(line) + # edit the fabric.mod.json to support this version + with open(get_dir_location(f'{generator_mod_dir}/src/main/resources/fabric.mod.json'), 'r') as f: + fabric_mod_json = json.load(f) + fabric_mod_json['depends']['minecraft'] = '*' + with open(get_dir_location(f'{generator_mod_dir}/src/main/resources/fabric.mod.json'), 'w') as f: + json.dump(fabric_mod_json, f, indent=2) os.system( f'cd {generator_mod_dir} && gradlew runServer' -- cgit v1.2.3 From deef5d27c08daa709e5ebebc382aadff7450fca6 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 21 Jun 2022 19:57:18 -0500 Subject: Update to 1.19.1-pre1 --- README.md | 2 +- azalea-protocol/src/packets/mod.rs | 2 +- codegen/lib/code/version.py | 6 +++--- codegen/lib/download.py | 8 +++++++- codegen/migrate.py | 8 ++++++++ 5 files changed, 20 insertions(+), 6 deletions(-) (limited to 'codegen') diff --git a/README.md b/README.md index 0bccbc6e..aea4de20 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A collection of Rust crates primarily for creating Minecraft bots.

-*Currently supported Minecraft version: `22w24a`.* +*Currently supported Minecraft version: `1.19.1-pre1`.* I named this Azalea because it sounds like a cool word and this is a cool library. This project was heavily inspired by PrismarineJS. diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 8425b0e9..0dd79a47 100755 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -12,7 +12,7 @@ use crate::{ use num_derive::FromPrimitive; use num_traits::FromPrimitive; -pub const PROTOCOL_VERSION: u32 = 1073741916; +pub const PROTOCOL_VERSION: u32 = 1073741917; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, FromPrimitive)] pub enum ConnectionProtocol { diff --git a/codegen/lib/code/version.py b/codegen/lib/code/version.py index 511d30d1..13d9472d 100644 --- a/codegen/lib/code/version.py +++ b/codegen/lib/code/version.py @@ -36,7 +36,7 @@ def set_version_id(version_id: str) -> None: def get_protocol_version() -> str: # azalea-protocol/src/packets/mod.rs # pub const PROTOCOL_VERSION: u32 = 758; - with open('../azalea-protocol/src/packets/mod.rs', 'r') as f: + with open(get_dir_location('../azalea-protocol/src/packets/mod.rs'), 'r') as f: mod_rs = f.read().splitlines() for line in mod_rs: if line.strip().startswith('pub const PROTOCOL_VERSION'): @@ -46,7 +46,7 @@ def get_protocol_version() -> str: def set_protocol_version(protocol_version: str) -> None: - with open('../azalea-protocol/src/packets/mod.rs', 'r') as f: + with open(get_dir_location('../azalea-protocol/src/packets/mod.rs'), 'r') as f: mod_rs = f.read().splitlines() for i, line in enumerate(mod_rs): if line.strip().startswith('pub const PROTOCOL_VERSION'): @@ -56,5 +56,5 @@ def set_protocol_version(protocol_version: str) -> None: raise Exception( 'Could not find protocol version in azalea-protocol/src/packets/mod.rs') - with open('../azalea-protocol/src/packets/mod.rs', 'w') as f: + with open(get_dir_location('../azalea-protocol/src/packets/mod.rs'), 'w') as f: f.write('\n'.join(mod_rs)) diff --git a/codegen/lib/download.py b/codegen/lib/download.py index db21145c..d9e2e63f 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -129,7 +129,13 @@ def get_fabric_api_versions(): fabric_api_versions_data_xml = ET.fromstring( fabric_api_versions_xml_text) fabric_api_versions = [] - for version_el in fabric_api_versions_data_xml.find('versioning').find('versions').findall('version'): + + versioning_el = fabric_api_versions_data_xml.find('versioning') + assert versioning_el + versions_el = versioning_el.find('versions') + assert versions_el + + for version_el in versions_el.findall('version'): fabric_api_versions.append(version_el.text) with open(get_dir_location('downloads/fabric_api_versions.json'), 'w') as f: diff --git a/codegen/migrate.py b/codegen/migrate.py index 62924bb9..fa7b01a6 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -9,6 +9,14 @@ import sys lib.download.clear_version_cache() +if len(sys.argv) == 1: + print('\033[91mYou must provide a version to migrate to.\033[m') + version_manifest = lib.download.get_version_manifest() + newest_version = version_manifest['latest']['snapshot'] + print(f'Hint: newest version is \033[1m{newest_version}\033[m') + exit() + + old_version_id = lib.code.version.get_version_id() old_mappings = lib.download.get_mappings_for_version(old_version_id) old_burger_data = lib.extract.get_burger_data_for_version(old_version_id) -- cgit v1.2.3 From 8755f18c2b0c11a51a81f60b5501d9d57d0c370e Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 23 Jun 2022 21:54:38 -0500 Subject: Correctly detect updated packets --- codegen/lib/code/packet.py | 25 +++++++++++++++++++++++++ codegen/lib/code/utils.py | 3 +-- codegen/migrate.py | 5 +++-- 3 files changed, 29 insertions(+), 4 deletions(-) (limited to 'codegen') diff --git a/codegen/lib/code/packet.py b/codegen/lib/code/packet.py index 2aabf39a..7849b0b3 100644 --- a/codegen/lib/code/packet.py +++ b/codegen/lib/code/packet.py @@ -245,3 +245,28 @@ def remove_packet_ids(removing_packet_ids: list[int], direction: str, state: str new_packet_class_names.append(packet_class_name) set_packets(new_packet_ids, new_packet_class_names, direction, state) + + +def are_packet_instructions_identical(old_packet, new_packet): + old_packet = old_packet or [] + new_packet = new_packet or [] + + if len(old_packet) != len(new_packet): + return False + + for old_field, new_field in zip(old_packet, new_packet): + if old_field['operation'] != new_field['operation']: + return False + if new_field['operation'] == 'write': + if burger_type_to_rust_type(old_field.get('type')) != burger_type_to_rust_type(new_field.get('type')): + return False + else: + # comparing is too complicated here since it's possible the type has variables + # so we just don't + pass + + if 'instructions' in old_field and 'instructions' in new_field: + if not are_packet_instructions_identical(old_field['instructions'], new_field['instructions']): + return False + + return True diff --git a/codegen/lib/code/utils.py b/codegen/lib/code/utils.py index ecfff4fb..0c22d7ba 100644 --- a/codegen/lib/code/utils.py +++ b/codegen/lib/code/utils.py @@ -62,8 +62,7 @@ def burger_type_to_rust_type(burger_type): burger_type[:-2]) field_type_rs = f'Vec<{field_type_rs}>' else: - print('Unknown field type:', burger_type) - exit() + raise Exception(f'Unknown field type: {burger_type}') return field_type_rs, is_var, uses diff --git a/codegen/migrate.py b/codegen/migrate.py index fa7b01a6..fad546e9 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -85,8 +85,9 @@ for packet, packet_name in new_packets.items(): if packet_name not in old_packets.values(): added_or_changed_packets.append(packet) print('Added packet:', packet, packet_name) - if new_packets_data[packet].get('instructions') != old_packets_data[packet].get('instructions'): - print('hmm') + if not lib.code.packet.are_packet_instructions_identical(new_packets_data[packet].get('instructions'), old_packets_data[packet].get('instructions')): + added_or_changed_packets.append(packet) + print('Changed packet:', packet, packet_name) for packet in added_or_changed_packets: lib.code.packet.generate_packet( new_burger_data[0]['packets']['packet'], new_mappings, packet.packet_id, packet.direction, packet.state) -- cgit v1.2.3 From 048792f83cae75d98f77eb7a699652e5a6f8f2f9 Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 6 Jul 2022 18:52:24 -0500 Subject: Fix bugs with migration --- codegen/lib/code/packet.py | 6 ++++-- codegen/migrate.py | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) (limited to 'codegen') diff --git a/codegen/lib/code/packet.py b/codegen/lib/code/packet.py index 186f59e6..59632270 100644 --- a/codegen/lib/code/packet.py +++ b/codegen/lib/code/packet.py @@ -110,7 +110,8 @@ def set_packets(packet_ids: list[int], packet_class_names: list[str], direction: packet_ids, packet_class_names = [list(x) for x in zip( *sorted(zip(packet_ids, packet_class_names), key=lambda pair: pair[0]))] # type: ignore - mod_rs_dir = f'../azalea-protocol/src/packets/{state}/mod.rs' + mod_rs_dir = get_dir_location( + f'../azalea-protocol/src/packets/{state}/mod.rs') with open(mod_rs_dir, 'r') as f: mod_rs = f.read().splitlines() new_mod_rs = [] @@ -164,7 +165,8 @@ def set_packets(packet_ids: list[int], packet_class_names: list[str], direction: def get_packets(direction: str, state: str): - mod_rs_dir = f'../azalea-protocol/src/packets/{state}/mod.rs' + mod_rs_dir = get_dir_location( + f'../azalea-protocol/src/packets/{state}/mod.rs') with open(mod_rs_dir, 'r') as f: mod_rs = f.read().splitlines() diff --git a/codegen/migrate.py b/codegen/migrate.py index fad546e9..2dacc208 100644 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -81,13 +81,19 @@ print() # find added/changed packets added_or_changed_packets: list[PacketIdentifier] = [] -for packet, packet_name in new_packets.items(): +for new_packet, packet_name in new_packets.items(): + old_packet = None + for old_packet_tmp, old_packet_name in old_packets.items(): + if old_packet_name == packet_name: + old_packet = old_packet_tmp + break + if packet_name not in old_packets.values(): - added_or_changed_packets.append(packet) - print('Added packet:', packet, packet_name) - if not lib.code.packet.are_packet_instructions_identical(new_packets_data[packet].get('instructions'), old_packets_data[packet].get('instructions')): - added_or_changed_packets.append(packet) - print('Changed packet:', packet, packet_name) + added_or_changed_packets.append(new_packet) + print('Added packet:', new_packet, packet_name) + elif old_packet and not lib.code.packet.are_packet_instructions_identical(new_packets_data[new_packet].get('instructions'), old_packets_data[old_packet].get('instructions')): + added_or_changed_packets.append(new_packet) + print('Changed packet:', new_packet, packet_name) for packet in added_or_changed_packets: lib.code.packet.generate_packet( new_burger_data[0]['packets']['packet'], new_mappings, packet.packet_id, packet.direction, packet.state) -- cgit v1.2.3 From cb8005be6500890f14b5d002f1242493a0653747 Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 6 Jul 2022 19:04:38 -0500 Subject: Fix the mod.rs --- azalea-protocol/src/packets/game/mod.rs | 140 +++++++++++++++++++++----------- codegen/lib/code/packet.py | 1 + 2 files changed, 95 insertions(+), 46 deletions(-) (limited to 'codegen') diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index d8c5c3ec..f407a697 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -1,5 +1,55 @@ -pub mod clientbound_custom_chat_completions_packet; +pub mod clientbound_add_entity_packet; +pub mod clientbound_add_player_packet; +pub mod clientbound_animate_packet; +pub mod clientbound_block_changed_ack_packet; +pub mod clientbound_block_update_packet; +pub mod clientbound_change_difficulty_packet; +pub mod clientbound_chat_preview_packet; +pub mod clientbound_container_set_content_packet; +pub mod clientbound_custom_payload_packet; +pub mod clientbound_declare_commands_packet; +pub mod clientbound_disconnect_packet; +pub mod clientbound_entity_event_packet; +pub mod clientbound_entity_velocity_packet; +pub mod clientbound_game_event_packet; +pub mod clientbound_initialize_border_packet; +pub mod clientbound_keep_alive_packet; +pub mod clientbound_level_chunk_with_light_packet; +pub mod clientbound_level_event_packet; +pub mod clientbound_level_particles_packet; +pub mod clientbound_light_update_packet; +pub mod clientbound_login_packet; +pub mod clientbound_move_entity_pos_packet; +pub mod clientbound_move_entity_posrot_packet; +pub mod clientbound_move_entity_rot_packet; +pub mod clientbound_player_abilities_packet; +pub mod clientbound_player_chat_packet; +pub mod clientbound_player_info_packet; +pub mod clientbound_player_position_packet; +pub mod clientbound_recipe_packet; +pub mod clientbound_remove_entities_packet; +pub mod clientbound_rotate_head_packet; +pub mod clientbound_section_blocks_update_packet; +pub mod clientbound_server_data_packet; +pub mod clientbound_set_carried_item_packet; +pub mod clientbound_set_chunk_cache_center_packet; +pub mod clientbound_set_default_spawn_position_packet; +pub mod clientbound_set_display_chat_preview_packet; +pub mod clientbound_set_entity_data_packet; +pub mod clientbound_set_entity_link_packet; +pub mod clientbound_set_equipment_packet; +pub mod clientbound_set_experience_packet; +pub mod clientbound_set_health_packet; +pub mod clientbound_set_time_packet; +pub mod clientbound_sound_packet; pub mod clientbound_system_chat_packet; +pub mod clientbound_teleport_entity_packet; +pub mod clientbound_update_advancements_packet; +pub mod clientbound_update_attributes_packet; +pub mod clientbound_update_mob_effect_packet; +pub mod clientbound_update_recipes_packet; +pub mod clientbound_update_tags_packet; +pub mod clientbound_update_view_distance_packet; pub mod serverbound_accept_teleportation_packet; pub mod serverbound_chat_command_packet; pub mod serverbound_chat_preview_packet; @@ -35,50 +85,48 @@ declare_state_packets!( 0x0c: clientbound_chat_preview_packet::ClientboundChatPreviewPacket, 0x0f: clientbound_declare_commands_packet::ClientboundDeclareCommandsPacket, 0x11: clientbound_container_set_content_packet::ClientboundContainerSetContentPacket, - 0x15: clientbound_custom_chat_completions_packet::ClientboundCustomChatCompletionsPacket, - 0x16: clientbound_custom_payload_packet::ClientboundCustomPayloadPacket, - 0x18: clientbound_disconnect_packet::ClientboundDisconnectPacket, - 0x19: clientbound_entity_event_packet::ClientboundEntityEventPacket, - 0x1c: clientbound_game_event_packet::ClientboundGameEventPacket, - 0x1e: clientbound_initialize_border_packet::ClientboundInitializeBorderPacket, - 0x1f: clientbound_keep_alive_packet::ClientboundKeepAlivePacket, - 0x20: clientbound_level_chunk_with_light_packet::ClientboundLevelChunkWithLightPacket, - 0x21: clientbound_level_event_packet::ClientboundLevelEventPacket, - 0x22: clientbound_level_particles_packet::ClientboundLevelParticlesPacket, - 0x23: clientbound_light_update_packet::ClientboundLightUpdatePacket, - 0x24: clientbound_login_packet::ClientboundLoginPacket, - 0x27: clientbound_move_entity_pos_packet::ClientboundMoveEntityPosPacket, - 0x28: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosrotPacket, - 0x29: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket, - 0x30: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket, - 0x31: clientbound_player_chat_packet::ClientboundPlayerChatPacket, - 0x35: clientbound_player_info_packet::ClientboundPlayerInfoPacket, - 0x37: clientbound_player_position_packet::ClientboundPlayerPositionPacket, - 0x38: clientbound_recipe_packet::ClientboundRecipePacket, - 0x39: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket, - 0x3d: clientbound_rotate_head_packet::ClientboundRotateHeadPacket, - 0x3e: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket, - 0x40: clientbound_server_data_packet::ClientboundServerDataPacket, - 0x48: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket, - 0x49: clientbound_set_chunk_cache_center_packet::ClientboundSetChunkCacheCenterPacket, - 0x4a: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket, - 0x4b: clientbound_set_default_spawn_position_packet::ClientboundSetDefaultSpawnPositionPacket, - 0x4c: clientbound_set_display_chat_preview_packet::ClientboundSetDisplayChatPreviewPacket, - 0x4e: clientbound_set_entity_data_packet::ClientboundSetEntityDataPacket, - 0x4f: clientbound_set_entity_link_packet::ClientboundSetEntityLinkPacket, - 0x50: clientbound_entity_velocity_packet::ClientboundEntityVelocityPacket, - 0x51: clientbound_set_equipment_packet::ClientboundSetEquipmentPacket, - 0x52: clientbound_set_experience_packet::ClientboundSetExperiencePacket, - 0x53: clientbound_set_health_packet::ClientboundSetHealthPacket, - 0x5a: clientbound_set_time_packet::ClientboundSetTimePacket, - 0x5e: clientbound_sound_packet::ClientboundSoundPacket, - 0x60: clientbound_system_chat_packet::ClientboundSystemChatPacket, - 0x60: clientbound_system_chat_packet::ClientboundSystemChatPacket, - 0x64: clientbound_teleport_entity_packet::ClientboundTeleportEntityPacket, - 0x65: clientbound_update_advancements_packet::ClientboundUpdateAdvancementsPacket, - 0x66: clientbound_update_attributes_packet::ClientboundUpdateAttributesPacket, - 0x67: clientbound_update_mob_effect_packet::ClientboundUpdateMobEffectPacket, - 0x68: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket, - 0x69: clientbound_update_tags_packet::ClientboundUpdateTagsPacket, + 0x15: clientbound_custom_payload_packet::ClientboundCustomPayloadPacket, + 0x17: clientbound_disconnect_packet::ClientboundDisconnectPacket, + 0x18: clientbound_entity_event_packet::ClientboundEntityEventPacket, + 0x1b: clientbound_game_event_packet::ClientboundGameEventPacket, + 0x1d: clientbound_initialize_border_packet::ClientboundInitializeBorderPacket, + 0x1e: clientbound_keep_alive_packet::ClientboundKeepAlivePacket, + 0x1f: clientbound_level_chunk_with_light_packet::ClientboundLevelChunkWithLightPacket, + 0x20: clientbound_level_event_packet::ClientboundLevelEventPacket, + 0x21: clientbound_level_particles_packet::ClientboundLevelParticlesPacket, + 0x22: clientbound_light_update_packet::ClientboundLightUpdatePacket, + 0x23: clientbound_login_packet::ClientboundLoginPacket, + 0x26: clientbound_move_entity_pos_packet::ClientboundMoveEntityPosPacket, + 0x27: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosRotPacket, + 0x28: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket, + 0x2f: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket, + 0x30: clientbound_player_chat_packet::ClientboundPlayerChatPacket, + 0x34: clientbound_player_info_packet::ClientboundPlayerInfoPacket, + 0x36: clientbound_player_position_packet::ClientboundPlayerPositionPacket, + 0x37: clientbound_recipe_packet::ClientboundRecipePacket, + 0x38: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket, + 0x3c: clientbound_rotate_head_packet::ClientboundRotateHeadPacket, + 0x3d: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket, + 0x3f: clientbound_server_data_packet::ClientboundServerDataPacket, + 0x47: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket, + 0x48: clientbound_set_chunk_cache_center_packet::ClientboundSetChunkCacheCenterPacket, + 0x49: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket, + 0x4a: clientbound_set_default_spawn_position_packet::ClientboundSetDefaultSpawnPositionPacket, + 0x4b: clientbound_set_display_chat_preview_packet::ClientboundSetDisplayChatPreviewPacket, + 0x4d: clientbound_set_entity_data_packet::ClientboundSetEntityDataPacket, + 0x4e: clientbound_set_entity_link_packet::ClientboundSetEntityLinkPacket, + 0x4f: clientbound_entity_velocity_packet::ClientboundEntityVelocityPacket, + 0x50: clientbound_set_equipment_packet::ClientboundSetEquipmentPacket, + 0x51: clientbound_set_experience_packet::ClientboundSetExperiencePacket, + 0x52: clientbound_set_health_packet::ClientboundSetHealthPacket, + 0x59: clientbound_set_time_packet::ClientboundSetTimePacket, + 0x5d: clientbound_sound_packet::ClientboundSoundPacket, + 0x5f: clientbound_system_chat_packet::ClientboundSystemChatPacket, + 0x63: clientbound_teleport_entity_packet::ClientboundTeleportEntityPacket, + 0x64: clientbound_update_advancements_packet::ClientboundUpdateAdvancementsPacket, + 0x65: clientbound_update_attributes_packet::ClientboundUpdateAttributesPacket, + 0x66: clientbound_update_mob_effect_packet::ClientboundUpdateMobEffectPacket, + 0x67: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket, + 0x68: clientbound_update_tags_packet::ClientboundUpdateTagsPacket, } ); diff --git a/codegen/lib/code/packet.py b/codegen/lib/code/packet.py index 59632270..ffa7841c 100644 --- a/codegen/lib/code/packet.py +++ b/codegen/lib/code/packet.py @@ -141,6 +141,7 @@ def set_packets(packet_ids: list[int], packet_class_names: list[str], direction: new_mod_rs.append( make_packet_mod_rs_line(packet_id, packet_class_name) ) + required_modules.append(packet_class_name) else: ignore_lines = False continue -- cgit v1.2.3