diff options
| author | mat <github@matdoes.dev> | 2022-04-30 22:13:47 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-04-30 22:13:47 -0500 |
| commit | f2a8e8221d9de6e76721d3c947ba9f1ab7c3c90d (patch) | |
| tree | ac975f5b640039a63a27dfe5ec58f944833894f0 /azalea-protocol/src | |
| parent | 80d49a76073d417e118b85636df2a923043b0250 (diff) | |
| download | azalea-drasl-f2a8e8221d9de6e76721d3c947ba9f1ab7c3c90d.tar.xz | |
add clientbound_add_entity_packet
Diffstat (limited to 'azalea-protocol/src')
| -rwxr-xr-x | azalea-protocol/src/mc_buf/read.rs | 11 | ||||
| -rw-r--r-- | azalea-protocol/src/packets/game/clientbound_add_entity_packet.rs | 26 | ||||
| -rwxr-xr-x | azalea-protocol/src/packets/game/mod.rs | 2 |
3 files changed, 39 insertions, 0 deletions
diff --git a/azalea-protocol/src/mc_buf/read.rs b/azalea-protocol/src/mc_buf/read.rs index a0e3e79f..b345aac9 100755 --- a/azalea-protocol/src/mc_buf/read.rs +++ b/azalea-protocol/src/mc_buf/read.rs @@ -350,6 +350,17 @@ impl McBufReadable for u16 { } } +// i16 +#[async_trait] +impl McBufReadable for i16 { + async fn read_into<R>(buf: &mut R) -> Result<Self, String> + where + R: AsyncRead + std::marker::Unpin + std::marker::Send, + { + buf.read_short().await + } +} + // u16 varint #[async_trait] impl McBufVarintReadable for u16 { diff --git a/azalea-protocol/src/packets/game/clientbound_add_entity_packet.rs b/azalea-protocol/src/packets/game/clientbound_add_entity_packet.rs new file mode 100644 index 00000000..ad948922 --- /dev/null +++ b/azalea-protocol/src/packets/game/clientbound_add_entity_packet.rs @@ -0,0 +1,26 @@ +use crate::mc_buf::UnsizedByteArray; +use azalea_core::resource_location::ResourceLocation; +use packet_macros::GamePacket; +use uuid::Uuid; + +#[derive(Clone, Debug, GamePacket)] +pub struct ClientboundAddEntityPacket { + #[varint] + pub id: i32, + pub uuid: Uuid, + // TODO: have an entity type struct + #[varint] + pub entity_type: i32, + pub x: f64, + pub y: f64, + pub z: f64, + pub x_rot: i8, + pub y_rot: i8, + pub data: i8, + /// X acceleration + pub xa: u16, + /// Y acceleration + pub ya: u16, + /// Z acceleration + pub za: u16, +} diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index d957627e..9cde366c 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -1,3 +1,4 @@ +pub mod clientbound_add_entity_packet; pub mod clientbound_change_difficulty_packet; pub mod clientbound_custom_payload_packet; pub mod clientbound_declare_commands_packet; @@ -22,6 +23,7 @@ declare_state_packets!( GamePacket, Serverbound => {}, Clientbound => { + 0x02: clientbound_add_entity_packet::ClientboundAddEntityPacket, 0x0e: clientbound_change_difficulty_packet::ClientboundChangeDifficultyPacket, 0x12: clientbound_declare_commands_packet::ClientboundDeclareCommandsPacket, 0x1a: clientbound_disconnect_packet::ClientboundDisconnectPacket, |
