diff options
| author | mat <github@matdoes.dev> | 2022-04-30 23:04:18 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-04-30 23:04:18 -0500 |
| commit | 8313952541c049615af944b87b80c686bbf62073 (patch) | |
| tree | bda219f25ae448c2bd0054ce2187be63f513b02e /azalea-protocol/src | |
| parent | 0dc6decf7f3a4ea273e0eabccd74815c528ba6bd (diff) | |
| download | azalea-drasl-8313952541c049615af944b87b80c686bbf62073.tar.xz | |
Simplify packet macro
Now every packet implements McBufWritable and McBufReadable and uses those so the code doesn't have to be duplicated.
Diffstat (limited to 'azalea-protocol/src')
| -rwxr-xr-x | azalea-protocol/src/mc_buf/mod.rs | 6 | ||||
| -rwxr-xr-x | azalea-protocol/src/packets/game/mod.rs | 5 | ||||
| -rw-r--r-- | azalea-protocol/src/packets/game/serverbound_custom_payload_packet.rs | 11 |
3 files changed, 21 insertions, 1 deletions
diff --git a/azalea-protocol/src/mc_buf/mod.rs b/azalea-protocol/src/mc_buf/mod.rs index 4048bae7..d50817fb 100755 --- a/azalea-protocol/src/mc_buf/mod.rs +++ b/azalea-protocol/src/mc_buf/mod.rs @@ -32,6 +32,12 @@ impl From<Vec<u8>> for UnsizedByteArray { } } +impl From<&str> for UnsizedByteArray { + fn from(s: &str) -> Self { + Self(s.as_bytes().to_vec()) + } +} + /// Represents Java's BitSet, a list of bits. #[derive(Debug, Clone, PartialEq, Eq, Hash, McBufReadable, McBufWritable)] pub struct BitSet { diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs index 4b8132f1..aac1a9a0 100755 --- a/azalea-protocol/src/packets/game/mod.rs +++ b/azalea-protocol/src/packets/game/mod.rs @@ -16,12 +16,15 @@ pub mod clientbound_set_chunk_cache_center; pub mod clientbound_update_recipes_packet; pub mod clientbound_update_tags_packet; pub mod clientbound_update_view_distance_packet; +pub mod serverbound_custom_payload_packet; use packet_macros::declare_state_packets; declare_state_packets!( GamePacket, - Serverbound => {}, + Serverbound => { + 0x0a: serverbound_custom_payload_packet::ServerboundCustomPayloadPacket, + }, Clientbound => { 0x02: clientbound_add_mob_packet::ClientboundAddMobPacket, 0x0e: clientbound_change_difficulty_packet::ClientboundChangeDifficultyPacket, diff --git a/azalea-protocol/src/packets/game/serverbound_custom_payload_packet.rs b/azalea-protocol/src/packets/game/serverbound_custom_payload_packet.rs new file mode 100644 index 00000000..43ddb700 --- /dev/null +++ b/azalea-protocol/src/packets/game/serverbound_custom_payload_packet.rs @@ -0,0 +1,11 @@ +// i don't know the actual name of this packet, i couldn't find it in the source code + +use crate::mc_buf::UnsizedByteArray; +use azalea_core::resource_location::ResourceLocation; +use packet_macros::GamePacket; + +#[derive(Clone, Debug, GamePacket)] +pub struct ServerboundCustomPayloadPacket { + pub identifier: ResourceLocation, + pub data: UnsizedByteArray, +} |
