diff options
| author | mat <github@matdoes.dev> | 2022-05-07 21:44:11 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-05-07 21:44:11 -0500 |
| commit | f62a681474df698d87deb43c71238b83a26f0f1f (patch) | |
| tree | 68b26f053faf818cf6780688f41d7840cdcc7494 /azalea-protocol | |
| parent | 98eee6d908a5651c55131b80dc3c153a6708052e (diff) | |
| download | azalea-drasl-f62a681474df698d87deb43c71238b83a26f0f1f.tar.xz | |
remove entities packet
Diffstat (limited to 'azalea-protocol')
| -rwxr-xr-x | azalea-protocol/src/mc_buf/read.rs | 12 | ||||
| -rwxr-xr-x | azalea-protocol/src/mc_buf/write.rs | 11 | ||||
| -rw-r--r-- | azalea-protocol/src/packets/game/clientbound_remove_entities_packet.rs | 7 | ||||
| -rwxr-xr-x | azalea-protocol/src/packets/game/mod.rs | 2 |
4 files changed, 32 insertions, 0 deletions
diff --git a/azalea-protocol/src/mc_buf/read.rs b/azalea-protocol/src/mc_buf/read.rs index 991bf53b..98a3ee53 100755 --- a/azalea-protocol/src/mc_buf/read.rs +++ b/azalea-protocol/src/mc_buf/read.rs @@ -360,6 +360,18 @@ impl McBufVarReadable for u16 { } } +// Vec<T> varint +impl<T: McBufVarReadable> McBufVarReadable for Vec<T> { + fn var_read_into(buf: &mut impl Read) -> Result<Self, String> { + let length = buf.read_varint()? as usize; + let mut contents = Vec::with_capacity(length); + for _ in 0..length { + contents.push(T::var_read_into(buf)?); + } + Ok(contents) + } +} + // i64 impl McBufReadable for i64 { fn read_into(buf: &mut impl Read) -> Result<Self, String> { diff --git a/azalea-protocol/src/mc_buf/write.rs b/azalea-protocol/src/mc_buf/write.rs index 66f129f1..e3e7a2be 100755 --- a/azalea-protocol/src/mc_buf/write.rs +++ b/azalea-protocol/src/mc_buf/write.rs @@ -257,6 +257,17 @@ impl McBufVarWritable for u16 { } } +// Vec<T> varint +impl<T: McBufVarWritable> McBufVarWritable for Vec<T> { + fn var_write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { + u32::var_write_into(&(self.len() as u32), buf)?; + for i in self { + i.var_write_into(buf)?; + } + Ok(()) + } +} + // u8 impl McBufWritable for u8 { fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { diff --git a/azalea-protocol/src/packets/game/clientbound_remove_entities_packet.rs b/azalea-protocol/src/packets/game/clientbound_remove_entities_packet.rs new file mode 100644 index 00000000..265d0c64 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_remove_entities_packet.rs @@ -0,0 +1,7 @@ +use packet_macros::GamePacket; + +#[derive(Clone, Debug, GamePacket)] +pub struct ClientboundRemoveEntitiesPacket { + #[var] + pub entity_ids: Vec<u32>, +} diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index 9f1bce0d..dd3a7527 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -20,6 +20,7 @@ pub mod clientbound_player_abilities_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_set_carried_item_packet; pub mod clientbound_set_chunk_cache_center; @@ -68,6 +69,7 @@ declare_state_packets!( 0x36: clientbound_player_info_packet::ClientboundPlayerInfoPacket, 0x38: clientbound_player_position_packet::ClientboundPlayerPositionPacket, 0x39: clientbound_recipe_packet::ClientboundRecipePacket, + 0x3a: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket, 0x3e: clientbound_rotate_head_packet::ClientboundRotateHeadPacket, 0x48: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket, 0x49: clientbound_set_chunk_cache_center::ClientboundSetChunkCacheCenterPacket, |
