From a60c1ac05bf8f7e815d550d0a0ea1b091d9ea865 Mon Sep 17 00:00:00 2001 From: mat Date: Sat, 7 May 2022 22:03:49 -0500 Subject: [PATCH] block update packet --- azalea-client/src/connect.rs | 11 +++++++---- .../packets/game/clientbound_block_update_packet.rs | 12 ++++++++++++ azalea-protocol/src/packets/game/mod.rs | 6 ++++-- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 azalea-protocol/src/packets/game/clientbound_block_update_packet.rs diff --git a/azalea-client/src/connect.rs b/azalea-client/src/connect.rs index 9d24e43a..d71e49cf 100755 --- a/azalea-client/src/connect.rs +++ b/azalea-client/src/connect.rs @@ -218,9 +218,9 @@ impl Client { GamePacket::ClientboundUpdateRecipesPacket(p) => { println!("Got update recipes packet"); } - GamePacket::ClientboundEntityEventPacket(p) => { - println!("Got entity event packet {:?}", p); - } + // GamePacket::ClientboundEntityEventPacket(p) => { + // println!("Got entity event packet {:?}", p); + // } GamePacket::ClientboundRecipePacket(p) => { println!("Got recipe packet"); } @@ -280,7 +280,7 @@ impl Client { println!("Got set experience packet {:?}", p); } GamePacket::ClientboundTeleportEntityPacket(p) => { - println!("Got teleport entity packet {:?}", p); + // println!("Got teleport entity packet {:?}", p); } GamePacket::ClientboundUpdateAdvancementsPacket(p) => { println!("Got update advancements packet {:?}", p); @@ -316,6 +316,9 @@ impl Client { GamePacket::ClientboundLevelEventPacket(p) => { println!("Got level event packet {:?}", p); } + GamePacket::ClientboundBlockUpdatePacket(p) => { + println!("Got block update packet {:?}", p); + } _ => panic!("Unexpected packet {:?}", packet), } } diff --git a/azalea-protocol/src/packets/game/clientbound_block_update_packet.rs b/azalea-protocol/src/packets/game/clientbound_block_update_packet.rs new file mode 100644 index 00000000..575b7f46 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_block_update_packet.rs @@ -0,0 +1,12 @@ +use azalea_core::BlockPos; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, GamePacket)] +pub struct ClientboundBlockUpdatePacket { + pub pos: BlockPos, + // TODO: in vanilla this is a BlockState, but here we just have it as a number. + // however, we can't add azalea-world as a dependency because it depends on us. + // we could have a crate that contains encoding/decoding and the definitions? + #[var] + pub block_state: u32, +} diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index c9000913..64818638 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -1,7 +1,7 @@ -pub mod clientbound_level_event_packet; pub mod clientbound_add_entity_packet; pub mod clientbound_add_mob_packet; pub mod clientbound_add_player_packet; +pub mod clientbound_block_update_packet; pub mod clientbound_change_difficulty_packet; pub mod clientbound_chat_packet; pub mod clientbound_container_set_content_packet; @@ -13,6 +13,7 @@ pub mod clientbound_entity_velocity_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_light_update_packet; pub mod clientbound_login_packet; pub mod clientbound_move_entity_pos_packet; @@ -54,6 +55,7 @@ declare_state_packets!( 0x00: clientbound_add_entity_packet::ClientboundAddEntityPacket, 0x02: clientbound_add_mob_packet::ClientboundAddMobPacket, 0x04: clientbound_add_player_packet::ClientboundAddPlayerPacket, + 0xc: clientbound_block_update_packet::ClientboundBlockUpdatePacket, 0x0e: clientbound_change_difficulty_packet::ClientboundChangeDifficultyPacket, 0xf: clientbound_chat_packet::ClientboundChatPacket, 0x12: clientbound_declare_commands_packet::ClientboundDeclareCommandsPacket, @@ -93,4 +95,4 @@ declare_state_packets!( 0x66: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket, 0x67: clientbound_update_tags_packet::ClientboundUpdateTagsPacket, } -); \ No newline at end of file +);