diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2022-07-29 04:56:21 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-29 04:56:21 +0000 |
| commit | aadf2de3cb751d563e743599a7fb345c08010f5a (patch) | |
| tree | aec2a9485c5057f1c148b87e23ee07a7a6b4978b /azalea-protocol/src/packets | |
| parent | 3e43fc6c502573f9d48d801087e72cded37a30b8 (diff) | |
| parent | 2211021105a7ce0ce9fcbc18f3b4f03b0f991a10 (diff) | |
| download | azalea-drasl-aadf2de3cb751d563e743599a7fb345c08010f5a.tar.xz | |
Merge pull request #8 from mat-1/1.19.1
Support 1.19.1. Signing stuff isn't implemented but auth isn't even in Azalea yet so that's fine.
Diffstat (limited to 'azalea-protocol/src/packets')
14 files changed, 220 insertions, 74 deletions
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..06a641f1 --- /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<String>, +} + +#[derive(Clone, Debug, McBuf, Copy)] +pub enum Action { + Add = 0, + Remove = 1, + Set = 2, +} 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_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, 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<u8>, +} 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..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,22 +1,99 @@ -use azalea_buf::McBuf; +use azalea_buf::{BitSet, McBuf, McBufReadable, McBufVarWritable}; +use azalea_buf::{McBufVarReadable, McBufWritable}; use azalea_chat::component::Component; -use azalea_crypto::SaltSignaturePair; +use azalea_crypto::{MessageSignature, SignedMessageHeader}; use packet_macros::GamePacket; +use std::io::{Read, Write}; +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, + TeamMsgCommandOutgoing = 5, + EmoteCommand = 6, +} + +#[derive(Clone, Debug, McBuf)] +pub struct ChatTypeBound { + pub chat_type: ChatType, + pub name: Component, + pub target_name: Option<Component>, +} + +#[derive(Clone, Debug, McBuf)] +pub struct PlayerChatMessage { + pub signed_header: SignedMessageHeader, + pub header_signature: MessageSignature, + pub signed_body: SignedMessageBody, pub unsigned_content: Option<Component>, - #[var] - pub type_id: i32, - pub sender: ChatSender, + pub filter_mask: FilterMask, +} + +#[derive(Clone, Debug, McBuf)] +pub struct SignedMessageBody { + pub content: ChatMessageContent, pub timestamp: u64, - pub salt_signature: SaltSignaturePair, + pub salt: u64, + pub last_seen: Vec<LastSeenMessagesEntry>, } #[derive(Clone, Debug, McBuf)] -pub struct ChatSender { - pub uuid: uuid::Uuid, - pub name: Component, - pub team_name: Option<Component>, +pub struct LastSeenMessagesEntry { + pub profile_id: Uuid, + pub last_signature: MessageSignature, +} + +#[derive(Clone, Debug, McBuf)] +pub struct LastSeenMessagesUpdate { + pub last_seen: Vec<LastSeenMessagesEntry>, + pub last_received: Option<LastSeenMessagesEntry>, +} + +#[derive(Clone, Debug, McBuf)] +pub struct ChatMessageContent { + pub plain: String, + /// Only sent if the decorated message is different than the plain. + pub decorated: Option<Component>, +} + +#[derive(Clone, Debug)] +pub enum FilterMask { + PassThrough, + FullyFiltered, + PartiallyFiltered(BitSet), +} + +impl McBufReadable for FilterMask { + fn read_from(buf: &mut impl Read) -> Result<Self, String> { + 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/game/clientbound_server_data_packet.rs b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs index 1dddfc1e..ed91733e 100644 --- a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs @@ -7,4 +7,5 @@ pub struct ClientboundServerDataPacket { pub motd: Option<Component>, pub icon_base64: Option<String>, pub previews_chat: bool, + pub enforces_secure_chat: bool, } 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..0b5c4d3e 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -6,8 +6,10 @@ 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_delete_chat_packet; pub mod clientbound_disconnect_packet; pub mod clientbound_entity_event_packet; pub mod clientbound_entity_velocity_packet; @@ -23,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; @@ -51,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; @@ -66,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, @@ -85,48 +92,51 @@ 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_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_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, + 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/game/serverbound_chat_ack_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_ack_packet.rs new file mode 100644 index 00000000..921ca4c7 --- /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::LastSeenMessagesUpdate; +use azalea_buf::McBuf; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, McBuf, GamePacket)] +pub struct ServerboundChatAckPacket { + pub last_seen_messages: LastSeenMessagesUpdate, +} 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<ArgumentSignature>, pub signed_preview: bool, + pub last_seen_messages: LastSeenMessagesUpdate, } #[derive(Clone, Debug, McBuf)] -pub struct ArgumentSignatures { - pub salt: u64, - pub signatures: HashMap<String, Vec<u8>>, +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/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<ProfilePublicKeyData>, + pub profile_id: Option<Uuid>, } #[derive(Clone, Debug, McBuf)] diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs index cf405e98..fbccc087 100755..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 = 759; +pub const PROTOCOL_VERSION: u32 = 760; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum ConnectionProtocol { |
