From 7b3e2e4bf793466a351510c7fbbd08234e93bb0e Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:16:29 -0500 Subject: 1.20.2 (#99) * add configuration state * start updating to 23w31a * implement a bit more of 23w31a * chunk batching * start adding configuration state * ioasfhjgsd * almost works * configuration state mostly implemented * handle other packets in configuration state and fix keepalive * cleanup, fix warnings * 23w32a * fix some doctests * 23w33a * 23w35a * 1.20.2-pre2 * fix system conflicts * 1.20.2-pre4 * make tests compile * tests pass * 1.20.2-rc2 * 1.20.2 * Revert "1.20.2" This reverts commit dd152fd265332ead333c919e585ded6d609d7468. * didn't mean to commit that code --------- Co-authored-by: mat --- azalea-protocol/src/write.rs | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'azalea-protocol/src/write.rs') diff --git a/azalea-protocol/src/write.rs b/azalea-protocol/src/write.rs index 9e2e042b..0c3131a0 100755 --- a/azalea-protocol/src/write.rs +++ b/azalea-protocol/src/write.rs @@ -29,7 +29,7 @@ pub enum PacketEncodeError { }, } -pub fn packet_encoder( +pub fn serialize_packet( packet: &P, ) -> Result, PacketEncodeError> { let mut buf = Vec::new(); @@ -89,14 +89,28 @@ where W: AsyncWrite + Unpin + Send, { trace!("Sending packet: {packet:?}"); - let mut buf = packet_encoder(packet).unwrap(); + let raw_packet = serialize_packet(packet).unwrap(); + write_raw_packet(&raw_packet, stream, compression_threshold, cipher).await +} + +pub async fn write_raw_packet( + raw_packet: &[u8], + stream: &mut W, + compression_threshold: Option, + cipher: &mut Option, +) -> std::io::Result<()> +where + W: AsyncWrite + Unpin + Send, +{ + trace!("Writing raw packet: {raw_packet:?}"); + let mut raw_packet = raw_packet.to_vec(); if let Some(threshold) = compression_threshold { - buf = compression_encoder(&buf, threshold).await.unwrap(); + raw_packet = compression_encoder(&raw_packet, threshold).await.unwrap(); } - buf = frame_prepender(buf).unwrap(); + raw_packet = frame_prepender(raw_packet).unwrap(); // if we were given a cipher, encrypt the packet if let Some(cipher) = cipher { - azalea_crypto::encrypt_packet(cipher, &mut buf); + azalea_crypto::encrypt_packet(cipher, &mut raw_packet); } - stream.write_all(&buf).await + stream.write_all(&raw_packet).await } -- cgit v1.2.3