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 --- azalea-protocol/src/packets/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'azalea-protocol/src/packets') diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 1cc79b79..8425b0e9 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 = 759; +pub const PROTOCOL_VERSION: u32 = 1073741916; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, FromPrimitive)] pub enum ConnectionProtocol { -- 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 'azalea-protocol/src/packets') 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 e44afb76f4d89ecd3763db83338268b9d9360a0c Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 23 Jun 2022 21:34:10 -0500 Subject: 1.19.1-rc1 --- README.md | 2 +- azalea-protocol/src/packets/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'azalea-protocol/src/packets') diff --git a/README.md b/README.md index aea4de20..b228d4ec 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: `1.19.1-pre1`.* +*Currently supported Minecraft version: `1.19.1-rc1`.* 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 0dd79a47..a8915290 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 = 1073741917; +pub const PROTOCOL_VERSION: u32 = 1073741918; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, FromPrimitive)] pub enum ConnectionProtocol { -- cgit v1.2.3 From ae3ad007b67e205ee093daa44619acae0f7ccc88 Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 6 Jul 2022 18:55:18 -0500 Subject: Update packets --- README.md | 2 +- .../clientbound_custom_chat_completions_packet.rs | 15 +++ .../packets/game/clientbound_system_chat_packet.rs | 3 +- azalea-protocol/src/packets/game/mod.rs | 140 +++++++-------------- azalea-protocol/src/packets/mod.rs | 2 +- 5 files changed, 64 insertions(+), 98 deletions(-) create mode 100644 azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs (limited to 'azalea-protocol/src/packets') diff --git a/README.md b/README.md index b228d4ec..0f3c6849 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: `1.19.1-rc1`.* +*Currently supported Minecraft version: `1.19.1-pre3`.* 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/game/clientbound_custom_chat_completions_packet.rs b/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs new file mode 100644 index 00000000..94c90039 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs @@ -0,0 +1,15 @@ +use azalea_buf::McBuf; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ClientboundCustomChatCompletionsPacket { + pub action: Action, + pub entries: Vec, +} + +#[derive(Clone, Debug, McBuf)] +pub enum Action { + Add = 0, + Remove = 1, + Set = 2, +} diff --git a/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs index c531fa1e..8318b7d4 100644 --- a/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs @@ -5,6 +5,5 @@ use packet_macros::GamePacket; #[derive(Clone, Debug, McBuf, GamePacket)] pub struct ClientboundSystemChatPacket { pub content: Component, - #[var] - pub type_id: i32, + pub overlay: bool, } diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index f407a697..d8c5c3ec 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -1,55 +1,5 @@ -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_custom_chat_completions_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; @@ -85,48 +35,50 @@ 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_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, + 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, } ); diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 499b0062..2233b39d 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -7,7 +7,7 @@ use crate::connect::PacketFlow; use azalea_buf::{McBufWritable, Readable, Writable}; use std::io::{Read, Write}; -pub const PROTOCOL_VERSION: u32 = 1073741918; +pub const PROTOCOL_VERSION: u32 = 1073741920; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { -- 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 'azalea-protocol/src/packets') 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 From 2d7056b3d45ae1b0317b6bcb42e2444dedd72bf4 Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 6 Jul 2022 19:08:19 -0500 Subject: Update mod.rs --- azalea-protocol/src/packets/game/mod.rs | 88 +++++++++++++++++---------------- 1 file changed, 45 insertions(+), 43 deletions(-) (limited to 'azalea-protocol/src/packets') diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index f407a697..8009b0fe 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -6,6 +6,7 @@ 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_chat_completions_packet; pub mod clientbound_custom_payload_packet; pub mod clientbound_declare_commands_packet; pub mod clientbound_disconnect_packet; @@ -85,48 +86,49 @@ 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_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, + 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, + 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, } ); -- cgit v1.2.3 From 017651358d8aeefdadc0f3973f1fe4f394e9b14d Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 6 Jul 2022 19:15:33 -0500 Subject: It compiles --- azalea-client/src/client.rs | 2 +- .../src/packets/game/clientbound_custom_chat_completions_packet.rs | 2 +- .../src/packets/game/clientbound_move_entity_posrot_packet.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'azalea-protocol/src/packets') diff --git a/azalea-client/src/client.rs b/azalea-client/src/client.rs index 2bc73551..8b586b0c 100644 --- a/azalea-client/src/client.rs +++ b/azalea-client/src/client.rs @@ -545,7 +545,7 @@ impl Client { world.move_entity_with_delta(p.entity_id, &p.delta)?; } - GamePacket::ClientboundMoveEntityPosRotPacket(p) => { + GamePacket::ClientboundMoveEntityPosrotPacket(p) => { let mut state_lock = state.lock()?; let world = state_lock.world.as_mut().unwrap(); diff --git a/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs b/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs index 94c90039..06a641f1 100644 --- a/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_custom_chat_completions_packet.rs @@ -7,7 +7,7 @@ pub struct ClientboundCustomChatCompletionsPacket { pub entries: Vec, } -#[derive(Clone, Debug, McBuf)] +#[derive(Clone, Debug, McBuf, Copy)] pub enum Action { Add = 0, Remove = 1, diff --git a/azalea-protocol/src/packets/game/clientbound_move_entity_posrot_packet.rs b/azalea-protocol/src/packets/game/clientbound_move_entity_posrot_packet.rs index e3422ac0..3dbfaff6 100644 --- a/azalea-protocol/src/packets/game/clientbound_move_entity_posrot_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_move_entity_posrot_packet.rs @@ -4,7 +4,7 @@ use packet_macros::GamePacket; /// This packet is sent by the server when an entity moves less then 8 blocks. #[derive(Clone, Debug, McBuf, GamePacket)] -pub struct ClientboundMoveEntityPosRotPacket { +pub struct ClientboundMoveEntityPosrotPacket { #[var] pub entity_id: u32, pub delta: PositionDelta8, -- cgit v1.2.3 From 27edd4f578e7b64fdaacefa26f691e2148707a8c Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 7 Jul 2022 00:57:50 -0500 Subject: Update ServerboundHelloPacket PR made in burger --- azalea-protocol/src/packets/login/serverbound_hello_packet.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'azalea-protocol/src/packets') diff --git a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs b/azalea-protocol/src/packets/login/serverbound_hello_packet.rs index 57a3e4d8..0f6f9a50 100755 --- a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs +++ b/azalea-protocol/src/packets/login/serverbound_hello_packet.rs @@ -1,10 +1,12 @@ use azalea_buf::McBuf; use packet_macros::LoginPacket; +use uuid::Uuid; #[derive(Clone, Debug, McBuf, LoginPacket)] pub struct ServerboundHelloPacket { pub username: String, pub public_key: Option, + pub profile_id: Option, } #[derive(Clone, Debug, McBuf)] -- cgit v1.2.3 From ec0b6ec06c1607d7bfc9df2fca220f59c700e07b Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 10 Jul 2022 23:43:09 -0500 Subject: 1.19.1-pre4 --- Cargo.lock | 1 + README.md | 2 +- azalea-block/src/lib.rs | 2 +- azalea-crypto/Cargo.toml | 1 + azalea-crypto/src/lib.rs | 2 +- azalea-crypto/src/signing.rs | 25 +++--- .../packets/game/clientbound_delete_chat_packet.rs | 8 ++ .../game/clientbound_light_update_packet.rs | 3 +- .../game/clientbound_player_chat_header_packet.rs | 10 +++ .../packets/game/clientbound_player_chat_packet.rs | 48 +++++++++--- azalea-protocol/src/packets/game/mod.rs | 88 +++++++++++----------- azalea-protocol/src/packets/mod.rs | 2 +- 12 files changed, 119 insertions(+), 73 deletions(-) create mode 100644 azalea-protocol/src/packets/game/clientbound_delete_chat_packet.rs create mode 100644 azalea-protocol/src/packets/game/clientbound_player_chat_header_packet.rs (limited to 'azalea-protocol/src/packets') diff --git a/Cargo.lock b/Cargo.lock index 5221945c..d38f8eaf 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "rand", "rsa_public_encrypt_pkcs1", "sha-1", + "uuid", ] [[package]] diff --git a/README.md b/README.md index 0f3c6849..fd65b1ec 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: `1.19.1-pre3`.* +*Currently supported Minecraft version: `1.19.1-pre4`.* 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-block/src/lib.rs b/azalea-block/src/lib.rs index f07b1bce..3eb86a90 100644 --- a/azalea-block/src/lib.rs +++ b/azalea-block/src/lib.rs @@ -8,7 +8,7 @@ use std::mem; impl BlockState { /// Transmutes a u32 to a block state. - /// + /// /// # Safety /// The `state_id` should be a valid block state. #[inline] diff --git a/azalea-crypto/Cargo.toml b/azalea-crypto/Cargo.toml index ee652565..7b77eb3b 100644 --- a/azalea-crypto/Cargo.toml +++ b/azalea-crypto/Cargo.toml @@ -13,3 +13,4 @@ num-bigint = "^0.4.3" rand = {version = "^0.8.4", features = ["getrandom"]} rsa_public_encrypt_pkcs1 = "0.4.0" sha-1 = "^0.10.0" +uuid = "^1.1.2" diff --git a/azalea-crypto/src/lib.rs b/azalea-crypto/src/lib.rs index a5e797e8..9a17a472 100644 --- a/azalea-crypto/src/lib.rs +++ b/azalea-crypto/src/lib.rs @@ -7,7 +7,7 @@ use aes::{ }; use rand::{rngs::OsRng, RngCore}; use sha1::{Digest, Sha1}; -pub use signing::SaltSignaturePair; +pub use signing::*; fn generate_secret_key() -> [u8; 16] { let mut key = [0u8; 16]; diff --git a/azalea-crypto/src/signing.rs b/azalea-crypto/src/signing.rs index 535f9f1d..99c7b3d7 100644 --- a/azalea-crypto/src/signing.rs +++ b/azalea-crypto/src/signing.rs @@ -1,24 +1,19 @@ -use azalea_buf::{McBufReadable, McBufWritable}; -use std::io::{Read, Write}; +use azalea_buf::McBuf; +use uuid::Uuid; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, McBuf)] pub struct SaltSignaturePair { pub salt: u64, pub signature: Vec, } -impl McBufReadable for SaltSignaturePair { - fn read_from(buf: &mut impl Read) -> Result { - let salt = u64::read_from(buf)?; - let signature = Vec::::read_from(buf)?; - Ok(SaltSignaturePair { salt, signature }) - } +#[derive(Clone, Debug, Default, McBuf)] +pub struct MessageSignature { + pub bytes: Vec, } -impl McBufWritable for SaltSignaturePair { - fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { - self.salt.write_into(buf)?; - self.signature.write_into(buf)?; - Ok(()) - } +#[derive(Clone, Debug, McBuf)] +pub struct SignedMessageHeader { + pub previous_signature: Option, + pub uuid: Uuid, } diff --git a/azalea-protocol/src/packets/game/clientbound_delete_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_delete_chat_packet.rs new file mode 100644 index 00000000..6e7ab6b7 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_delete_chat_packet.rs @@ -0,0 +1,8 @@ +use azalea_buf::McBuf; +use azalea_crypto::MessageSignature; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ClientboundDeleteChatPacket { + pub message_signature: MessageSignature, +} diff --git a/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs b/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs index adb6e33b..1c998226 100644 --- a/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs @@ -1,5 +1,4 @@ -use azalea_buf::BitSet; -use azalea_buf::McBuf; +use azalea_buf::{BitSet, McBuf}; use packet_macros::GamePacket; #[derive(Clone, Debug, McBuf, GamePacket)] diff --git a/azalea-protocol/src/packets/game/clientbound_player_chat_header_packet.rs b/azalea-protocol/src/packets/game/clientbound_player_chat_header_packet.rs new file mode 100644 index 00000000..bd0bc1f3 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_player_chat_header_packet.rs @@ -0,0 +1,10 @@ +use azalea_buf::McBuf; +use azalea_crypto::{MessageSignature, SignedMessageHeader}; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ClientboundPlayerChatHeaderPacket { + pub header: SignedMessageHeader, + pub header_signature: MessageSignature, + pub body_digest: Vec, +} diff --git a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs index 4aac93f4..f5df8869 100644 --- a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs @@ -1,22 +1,50 @@ use azalea_buf::McBuf; use azalea_chat::component::Component; -use azalea_crypto::SaltSignaturePair; +use azalea_crypto::{MessageSignature, SignedMessageHeader}; use packet_macros::GamePacket; +use uuid::Uuid; #[derive(Clone, Debug, McBuf, GamePacket)] pub struct ClientboundPlayerChatPacket { - pub signed_content: Component, + pub message: PlayerChatMessage, + pub chat_type: ChatTypeBound, +} + +#[derive(Copy, Clone, Debug, McBuf)] +pub enum ChatType { + Chat = 0, + SayCommand = 1, + MsgCommandIncoming = 2, + MsgCommandOutgoing = 3, + TeamMsgCommandIncoming = 4, + EmoteCommand = 5, +} + +#[derive(Clone, Debug, McBuf)] +pub struct ChatTypeBound { + pub chat_type: ChatType, + pub name: Component, + pub target_name: Component, +} + +#[derive(Clone, Debug, McBuf)] +pub struct PlayerChatMessage { + pub signed_header: SignedMessageHeader, + pub header_signature: MessageSignature, + pub signed_body: SignedMessageBody, pub unsigned_content: Option, - #[var] - pub type_id: i32, - pub sender: ChatSender, +} + +#[derive(Clone, Debug, McBuf)] +pub struct SignedMessageBody { + pub content: Component, pub timestamp: u64, - pub salt_signature: SaltSignaturePair, + pub salt: u64, + pub last_seen: Vec, } #[derive(Clone, Debug, McBuf)] -pub struct ChatSender { - pub uuid: uuid::Uuid, - pub name: Component, - pub team_name: Option, +pub struct LastSeen { + pub profile_id: Uuid, + pub last_signature: MessageSignature, } diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index 8009b0fe..c9d632e2 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -9,6 +9,7 @@ pub mod clientbound_container_set_content_packet; pub mod clientbound_custom_chat_completions_packet; pub mod clientbound_custom_payload_packet; pub mod clientbound_declare_commands_packet; +pub mod clientbound_delete_chat_packet; pub mod clientbound_disconnect_packet; pub mod clientbound_entity_event_packet; pub mod clientbound_entity_velocity_packet; @@ -24,6 +25,7 @@ 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_header_packet; pub mod clientbound_player_chat_packet; pub mod clientbound_player_info_packet; pub mod clientbound_player_position_packet; @@ -88,47 +90,49 @@ declare_state_packets!( 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, - 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, + 0x18: clientbound_delete_chat_packet::ClientboundDeleteChatPacket, + 0x19: clientbound_disconnect_packet::ClientboundDisconnectPacket, + 0x1a: clientbound_entity_event_packet::ClientboundEntityEventPacket, + 0x1d: clientbound_game_event_packet::ClientboundGameEventPacket, + 0x1f: clientbound_initialize_border_packet::ClientboundInitializeBorderPacket, + 0x20: clientbound_keep_alive_packet::ClientboundKeepAlivePacket, + 0x21: clientbound_level_chunk_with_light_packet::ClientboundLevelChunkWithLightPacket, + 0x22: clientbound_level_event_packet::ClientboundLevelEventPacket, + 0x23: clientbound_level_particles_packet::ClientboundLevelParticlesPacket, + 0x24: clientbound_light_update_packet::ClientboundLightUpdatePacket, + 0x25: clientbound_login_packet::ClientboundLoginPacket, + 0x28: clientbound_move_entity_pos_packet::ClientboundMoveEntityPosPacket, + 0x29: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosrotPacket, + 0x2a: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket, + 0x31: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket, + 0x32: clientbound_player_chat_packet::ClientboundPlayerChatPacket, + 0x33: clientbound_player_chat_header_packet::ClientboundPlayerChatHeaderPacket, + 0x37: clientbound_player_info_packet::ClientboundPlayerInfoPacket, + 0x39: clientbound_player_position_packet::ClientboundPlayerPositionPacket, + 0x3a: clientbound_recipe_packet::ClientboundRecipePacket, + 0x3b: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket, + 0x3f: clientbound_rotate_head_packet::ClientboundRotateHeadPacket, + 0x40: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket, + 0x42: clientbound_server_data_packet::ClientboundServerDataPacket, + 0x4a: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket, + 0x4b: clientbound_set_chunk_cache_center_packet::ClientboundSetChunkCacheCenterPacket, + 0x4c: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket, + 0x4d: clientbound_set_default_spawn_position_packet::ClientboundSetDefaultSpawnPositionPacket, + 0x4e: clientbound_set_display_chat_preview_packet::ClientboundSetDisplayChatPreviewPacket, + 0x50: clientbound_set_entity_data_packet::ClientboundSetEntityDataPacket, + 0x51: clientbound_set_entity_link_packet::ClientboundSetEntityLinkPacket, + 0x52: clientbound_entity_velocity_packet::ClientboundEntityVelocityPacket, + 0x53: clientbound_set_equipment_packet::ClientboundSetEquipmentPacket, + 0x54: clientbound_set_experience_packet::ClientboundSetExperiencePacket, + 0x55: clientbound_set_health_packet::ClientboundSetHealthPacket, + 0x5c: clientbound_set_time_packet::ClientboundSetTimePacket, + 0x60: clientbound_sound_packet::ClientboundSoundPacket, + 0x62: clientbound_system_chat_packet::ClientboundSystemChatPacket, + 0x66: clientbound_teleport_entity_packet::ClientboundTeleportEntityPacket, + 0x67: clientbound_update_advancements_packet::ClientboundUpdateAdvancementsPacket, + 0x68: clientbound_update_attributes_packet::ClientboundUpdateAttributesPacket, + 0x69: clientbound_update_mob_effect_packet::ClientboundUpdateMobEffectPacket, + 0x6a: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket, + 0x6b: clientbound_update_tags_packet::ClientboundUpdateTagsPacket, } ); diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 819e31a7..64a5b3b3 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -7,7 +7,7 @@ use crate::connect::PacketFlow; use azalea_buf::{McBufWritable, Readable, Writable}; use std::io::{Read, Write}; -pub const PROTOCOL_VERSION: u32 = 1073741920; +pub const PROTOCOL_VERSION: u32 = 1073741921; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { -- cgit v1.2.3 From c0ca03204f1c507d15ccb2699b69d08bd160139f Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 21 Jul 2022 20:04:33 -0500 Subject: 1.19.1-rc2 --- README.md | 2 +- azalea-crypto/src/signing.rs | 2 +- .../packets/game/clientbound_player_chat_packet.rs | 22 ++++++++++++++++---- .../packets/game/clientbound_server_data_packet.rs | 2 +- azalea-protocol/src/packets/game/mod.rs | 24 +++++++++++++--------- .../packets/game/serverbound_chat_ack_packet.rs | 8 ++++++++ .../game/serverbound_chat_command_packet.rs | 15 ++++++++------ .../src/packets/game/serverbound_chat_packet.rs | 14 +++++++++++++ azalea-protocol/src/packets/mod.rs | 2 +- 9 files changed, 67 insertions(+), 24 deletions(-) create mode 100644 azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs create mode 100644 azalea-protocol/src/packets/game/serverbound_chat_packet.rs (limited to 'azalea-protocol/src/packets') diff --git a/README.md b/README.md index fd65b1ec..c307bd77 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: `1.19.1-pre4`.* +*Currently supported Minecraft version: `1.19.1-rc2`.* 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-crypto/src/signing.rs b/azalea-crypto/src/signing.rs index 99c7b3d7..3bad08c9 100644 --- a/azalea-crypto/src/signing.rs +++ b/azalea-crypto/src/signing.rs @@ -15,5 +15,5 @@ pub struct MessageSignature { #[derive(Clone, Debug, McBuf)] pub struct SignedMessageHeader { pub previous_signature: Option, - pub uuid: Uuid, + pub sender: Uuid, } diff --git a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs index f5df8869..1b71ccea 100644 --- a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs @@ -17,7 +17,8 @@ pub enum ChatType { MsgCommandIncoming = 2, MsgCommandOutgoing = 3, TeamMsgCommandIncoming = 4, - EmoteCommand = 5, + TeamMsgCommandOutgoing = 5, + EmoteCommand = 6, } #[derive(Clone, Debug, McBuf)] @@ -37,14 +38,27 @@ pub struct PlayerChatMessage { #[derive(Clone, Debug, McBuf)] pub struct SignedMessageBody { - pub content: Component, + pub content: ChatMessageContent, pub timestamp: u64, pub salt: u64, - pub last_seen: Vec, + pub last_seen: Vec, } #[derive(Clone, Debug, McBuf)] -pub struct LastSeen { +pub struct LastSeenMessagesEntry { pub profile_id: Uuid, pub last_signature: MessageSignature, } + +#[derive(Clone, Debug, McBuf)] +pub struct LastSeenMessagesUpdate { + pub last_seen: Vec, + pub last_received: Option, +} + +#[derive(Clone, Debug, McBuf)] +pub struct ChatMessageContent { + pub plain: String, + /// Only sent if the decorated message is different than the plain. + pub decorated: Option, +} diff --git a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs index 1dddfc1e..2bfa00bd 100644 --- a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs @@ -1,5 +1,4 @@ use azalea_buf::McBuf; -use azalea_chat::component::Component; use packet_macros::GamePacket; #[derive(Clone, Debug, McBuf, GamePacket)] @@ -7,4 +6,5 @@ pub struct ClientboundServerDataPacket { pub motd: Option, pub icon_base64: Option, pub previews_chat: bool, + pub enforces_secure_chat: bool, } diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index c9d632e2..0b5c4d3e 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -54,7 +54,9 @@ 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_ack_packet; pub mod serverbound_chat_command_packet; +pub mod serverbound_chat_packet; pub mod serverbound_chat_preview_packet; pub mod serverbound_custom_payload_packet; pub mod serverbound_keep_alive_packet; @@ -69,14 +71,16 @@ declare_state_packets!( GamePacket, Serverbound => { 0x00: serverbound_accept_teleportation_packet::ServerboundAcceptTeleportationPacket, - 0x03: serverbound_chat_command_packet::ServerboundChatCommandPacket, - 0x05: serverbound_chat_preview_packet::ServerboundChatPreviewPacket, - 0x0c: serverbound_custom_payload_packet::ServerboundCustomPayloadPacket, - 0x11: serverbound_keep_alive_packet::ServerboundKeepAlivePacket, - 0x13: serverbound_move_player_packet_pos::ServerboundMovePlayerPacketPos, - 0x14: serverbound_move_player_packet_pos_rot::ServerboundMovePlayerPacketPosRot, - 0x15: serverbound_move_player_packet_rot::ServerboundMovePlayerPacketRot, - 0x16: serverbound_move_player_packet_status_only::ServerboundMovePlayerPacketStatusOnly, + 0x03: serverbound_chat_ack_packet::ServerboundChatAckPacket, + 0x04: serverbound_chat_command_packet::ServerboundChatCommandPacket, + 0x05: serverbound_chat_packet::ServerboundChatPacket, + 0x06: serverbound_chat_preview_packet::ServerboundChatPreviewPacket, + 0x0d: serverbound_custom_payload_packet::ServerboundCustomPayloadPacket, + 0x12: serverbound_keep_alive_packet::ServerboundKeepAlivePacket, + 0x14: serverbound_move_player_packet_pos::ServerboundMovePlayerPacketPos, + 0x15: serverbound_move_player_packet_pos_rot::ServerboundMovePlayerPacketPosRot, + 0x16: serverbound_move_player_packet_rot::ServerboundMovePlayerPacketRot, + 0x17: serverbound_move_player_packet_status_only::ServerboundMovePlayerPacketStatusOnly, }, Clientbound => { 0x00: clientbound_add_entity_packet::ClientboundAddEntityPacket, @@ -105,8 +109,8 @@ declare_state_packets!( 0x29: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosrotPacket, 0x2a: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket, 0x31: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket, - 0x32: clientbound_player_chat_packet::ClientboundPlayerChatPacket, - 0x33: clientbound_player_chat_header_packet::ClientboundPlayerChatHeaderPacket, + 0x32: clientbound_player_chat_header_packet::ClientboundPlayerChatHeaderPacket, + 0x33: clientbound_player_chat_packet::ClientboundPlayerChatPacket, 0x37: clientbound_player_info_packet::ClientboundPlayerInfoPacket, 0x39: clientbound_player_position_packet::ClientboundPlayerPositionPacket, 0x3a: clientbound_recipe_packet::ClientboundRecipePacket, diff --git a/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs new file mode 100644 index 00000000..759373e9 --- /dev/null +++ b/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs @@ -0,0 +1,8 @@ +use crate::packets::game::clientbound_player_chat_packet::LastSeenUpdate; +use azalea_buf::McBuf; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ServerboundChatAckPacket { + pub last_seen_messages: LastSeenUpdate, +} diff --git a/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs index 6371463b..1639deae 100644 --- a/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs +++ b/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs @@ -1,19 +1,22 @@ -use std::collections::HashMap; - use azalea_buf::McBuf; +use azalea_crypto::MessageSignature; use packet_macros::GamePacket; +use super::clientbound_player_chat_packet::LastSeenMessagesUpdate; + #[derive(Clone, Debug, McBuf, GamePacket)] pub struct ServerboundChatCommandPacket { pub command: String, // TODO: Choose a real timestamp type pub timestamp: u64, - pub argument_signatures: ArgumentSignatures, + pub salt: i64, + pub argument_signatures: Vec, pub signed_preview: bool, + pub last_seen_messages: LastSeenMessagesUpdate, } #[derive(Clone, Debug, McBuf)] -pub struct ArgumentSignatures { - pub salt: u64, - pub signatures: HashMap>, +pub struct ArgumentSignature { + pub name: String, + pub signature: MessageSignature, } diff --git a/azalea-protocol/src/packets/game/serverbound_chat_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_packet.rs new file mode 100644 index 00000000..f0c99b14 --- /dev/null +++ b/azalea-protocol/src/packets/game/serverbound_chat_packet.rs @@ -0,0 +1,14 @@ +use crate::packets::game::clientbound_player_chat_packet::LastSeenMessagesUpdate; +use azalea_buf::McBuf; +use azalea_crypto::MessageSignature; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ServerboundChatPacket { + pub message: String, + pub timestamp: u64, + pub salt: u64, + pub signature: MessageSignature, + pub signed_preview: bool, + pub last_seen_messages: LastSeenMessagesUpdate, +} diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 64a5b3b3..2ea163af 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -7,7 +7,7 @@ use crate::connect::PacketFlow; use azalea_buf::{McBufWritable, Readable, Writable}; use std::io::{Read, Write}; -pub const PROTOCOL_VERSION: u32 = 1073741921; +pub const PROTOCOL_VERSION: u32 = 1073741924; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { -- cgit v1.2.3 From 3aa856b41325c3c184903aba8fb835557124131e Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 21 Jul 2022 21:10:20 -0500 Subject: fix wrong imports --- azalea-protocol/src/packets/game/clientbound_server_data_packet.rs | 1 + azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'azalea-protocol/src/packets') diff --git a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs index 2bfa00bd..ed91733e 100644 --- a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs @@ -1,4 +1,5 @@ use azalea_buf::McBuf; +use azalea_chat::component::Component; use packet_macros::GamePacket; #[derive(Clone, Debug, McBuf, GamePacket)] diff --git a/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs index 759373e9..921ca4c7 100644 --- a/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs +++ b/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs @@ -1,8 +1,8 @@ -use crate::packets::game::clientbound_player_chat_packet::LastSeenUpdate; +use crate::packets::game::clientbound_player_chat_packet::LastSeenMessagesUpdate; use azalea_buf::McBuf; use packet_macros::GamePacket; #[derive(Clone, Debug, McBuf, GamePacket)] pub struct ServerboundChatAckPacket { - pub last_seen_messages: LastSeenUpdate, + pub last_seen_messages: LastSeenMessagesUpdate, } -- cgit v1.2.3 From 2211021105a7ce0ce9fcbc18f3b4f03b0f991a10 Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 28 Jul 2022 23:50:58 -0500 Subject: 1.19.1 --- README.md | 2 +- .../packets/game/clientbound_player_chat_packet.rs | 39 ++++++++++++++++++++-- azalea-protocol/src/packets/mod.rs | 2 +- bot/src/main.rs | 2 +- 4 files changed, 40 insertions(+), 5 deletions(-) (limited to 'azalea-protocol/src/packets') diff --git a/README.md b/README.md index c307bd77..1fcc3097 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: `1.19.1-rc2`.* +*Currently supported Minecraft version: `1.19.1`.* 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/game/clientbound_player_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs index 1b71ccea..68f0ea21 100644 --- a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs @@ -1,7 +1,9 @@ -use azalea_buf::McBuf; +use azalea_buf::{BitSet, McBuf, McBufReadable, McBufVarWritable}; +use azalea_buf::{McBufVarReadable, McBufWritable}; use azalea_chat::component::Component; use azalea_crypto::{MessageSignature, SignedMessageHeader}; use packet_macros::GamePacket; +use std::io::{Read, Write}; use uuid::Uuid; #[derive(Clone, Debug, McBuf, GamePacket)] @@ -25,7 +27,7 @@ pub enum ChatType { pub struct ChatTypeBound { pub chat_type: ChatType, pub name: Component, - pub target_name: Component, + pub target_name: Option, } #[derive(Clone, Debug, McBuf)] @@ -34,6 +36,7 @@ pub struct PlayerChatMessage { pub header_signature: MessageSignature, pub signed_body: SignedMessageBody, pub unsigned_content: Option, + pub filter_mask: FilterMask, } #[derive(Clone, Debug, McBuf)] @@ -62,3 +65,35 @@ pub struct ChatMessageContent { /// Only sent if the decorated message is different than the plain. pub decorated: Option, } + +#[derive(Clone, Debug)] +pub enum FilterMask { + PassThrough, + FullyFiltered, + PartiallyFiltered(BitSet), +} + +impl McBufReadable for FilterMask { + fn read_from(buf: &mut impl Read) -> Result { + let filter_mask = u32::var_read_from(buf)?; + match filter_mask { + 0 => Ok(FilterMask::PassThrough), + 1 => Ok(FilterMask::FullyFiltered), + 2 => Ok(FilterMask::PartiallyFiltered(BitSet::read_from(buf)?)), + _ => Err("Invalid filter mask".to_string()), + } + } +} +impl McBufWritable for FilterMask { + fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { + match self { + FilterMask::PassThrough => 0u32.var_write_into(buf)?, + FilterMask::FullyFiltered => 1u32.var_write_into(buf)?, + FilterMask::PartiallyFiltered(bits) => { + 2u32.var_write_into(buf)?; + bits.write_into(buf)?; + } + } + Ok(()) + } +} diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index 2ea163af..fbccc087 100644 --- a/azalea-protocol/src/packets/mod.rs +++ b/azalea-protocol/src/packets/mod.rs @@ -7,7 +7,7 @@ use crate::connect::PacketFlow; use azalea_buf::{McBufWritable, Readable, Writable}; use std::io::{Read, Write}; -pub const PROTOCOL_VERSION: u32 = 1073741924; +pub const PROTOCOL_VERSION: u32 = 760; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { diff --git a/bot/src/main.rs b/bot/src/main.rs index 3ff30908..0f3ea31a 100644 --- a/bot/src/main.rs +++ b/bot/src/main.rs @@ -6,7 +6,7 @@ async fn main() -> Result<(), Box> { println!("Hello, world!"); // let address = "95.111.249.143:10000"; - let address = "localhost:56150"; + let address = "localhost:25565"; // let response = azalea_client::ping::ping_server(&address.try_into().unwrap()) // .await // .unwrap(); -- cgit v1.2.3