From 1e145a82b80fb0402e8a64624454d9bfee77bc72 Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 26 May 2022 13:45:48 -0500 Subject: 1.19 --- azalea-protocol/src/mc_buf/read.rs | 35 +++++++++-------------------------- azalea-protocol/src/mc_buf/write.rs | 9 +++++++++ 2 files changed, 18 insertions(+), 26 deletions(-) (limited to 'azalea-protocol/src/mc_buf') diff --git a/azalea-protocol/src/mc_buf/read.rs b/azalea-protocol/src/mc_buf/read.rs index 1c4fbd6f..350c0998 100644 --- a/azalea-protocol/src/mc_buf/read.rs +++ b/azalea-protocol/src/mc_buf/read.rs @@ -4,6 +4,7 @@ use azalea_core::{ difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation, serializable_uuid::SerializableUuid, BlockPos, ChunkSectionPos, Direction, Slot, SlotData, }; +use azalea_crypto::SaltSignaturePair; use byteorder::{ReadBytesExt, BE}; use serde::Deserialize; use std::{collections::HashMap, hash::Hash, io::Read}; @@ -311,56 +312,48 @@ impl McBufReadable for Vec { } } -// string impl McBufReadable for String { fn read_into(buf: &mut impl Read) -> Result { buf.read_utf() } } -// ResourceLocation impl McBufReadable for ResourceLocation { fn read_into(buf: &mut impl Read) -> Result { buf.read_resource_location() } } -// u32 impl McBufReadable for u32 { fn read_into(buf: &mut impl Read) -> Result { Readable::read_int(buf).map(|i| i as u32) } } -// u32 varint impl McBufVarReadable for u32 { fn var_read_into(buf: &mut impl Read) -> Result { buf.read_varint().map(|i| i as u32) } } -// u16 impl McBufReadable for u16 { fn read_into(buf: &mut impl Read) -> Result { buf.read_short().map(|i| i as u16) } } -// i16 impl McBufReadable for i16 { fn read_into(buf: &mut impl Read) -> Result { buf.read_short() } } -// u16 varint impl McBufVarReadable for u16 { fn var_read_into(buf: &mut impl Read) -> Result { buf.read_varint().map(|i| i as u16) } } -// Vec varint impl McBufVarReadable for Vec { fn var_read_into(buf: &mut impl Read) -> Result { let length = buf.read_varint()? as usize; @@ -372,70 +365,60 @@ impl McBufVarReadable for Vec { } } -// i64 impl McBufReadable for i64 { fn read_into(buf: &mut impl Read) -> Result { buf.read_long() } } -// u64 impl McBufReadable for u64 { fn read_into(buf: &mut impl Read) -> Result { i64::read_into(buf).map(|i| i as u64) } } -// bool impl McBufReadable for bool { fn read_into(buf: &mut impl Read) -> Result { buf.read_boolean() } } -// u8 impl McBufReadable for u8 { fn read_into(buf: &mut impl Read) -> Result { buf.read_byte() } } -// i8 impl McBufReadable for i8 { fn read_into(buf: &mut impl Read) -> Result { buf.read_byte().map(|i| i as i8) } } -// f32 impl McBufReadable for f32 { fn read_into(buf: &mut impl Read) -> Result { buf.read_float() } } -// f64 impl McBufReadable for f64 { fn read_into(buf: &mut impl Read) -> Result { buf.read_double() } } -// GameType impl McBufReadable for GameType { fn read_into(buf: &mut impl Read) -> Result { GameType::from_id(buf.read_byte()?) } } -// Option impl McBufReadable for Option { fn read_into(buf: &mut impl Read) -> Result { GameType::from_optional_id(buf.read_byte()? as i8) } } -// Option impl McBufReadable for Option { default fn read_into(buf: &mut impl Read) -> Result { let present = buf.read_boolean()?; @@ -447,21 +430,18 @@ impl McBufReadable for Option { } } -// azalea_nbt::Tag impl McBufReadable for azalea_nbt::Tag { fn read_into(buf: &mut impl Read) -> Result { buf.read_nbt() } } -// Difficulty impl McBufReadable for Difficulty { fn read_into(buf: &mut impl Read) -> Result { Ok(Difficulty::by_id(u8::read_into(buf)?)) } } -// Component impl McBufReadable for Component { fn read_into(buf: &mut impl Read) -> Result { let string = buf.read_utf()?; @@ -472,7 +452,6 @@ impl McBufReadable for Component { } } -// Slot impl McBufReadable for Slot { fn read_into(buf: &mut impl Read) -> Result { let present = buf.read_boolean()?; @@ -486,14 +465,12 @@ impl McBufReadable for Slot { } } -// Uuid impl McBufReadable for Uuid { fn read_into(buf: &mut impl Read) -> Result { buf.read_uuid() } } -// BlockPos impl McBufReadable for BlockPos { fn read_into(buf: &mut impl Read) -> Result { let val = u64::read_into(buf)?; @@ -504,7 +481,6 @@ impl McBufReadable for BlockPos { } } -// Direction impl McBufReadable for Direction { fn read_into(buf: &mut impl Read) -> Result { match buf.read_varint()? { @@ -519,7 +495,6 @@ impl McBufReadable for Direction { } } -// ChunkSectionPos impl McBufReadable for ChunkSectionPos { fn read_into(buf: &mut impl Read) -> Result { let long = i64::read_into(buf)?; @@ -530,3 +505,11 @@ impl McBufReadable for ChunkSectionPos { }) } } + +impl McBufReadable for SaltSignaturePair { + fn read_into(buf: &mut impl Read) -> Result { + let salt = u64::read_into(buf)?; + let signature = Vec::::read_into(buf)?; + Ok(SaltSignaturePair { salt, signature }) + } +} diff --git a/azalea-protocol/src/mc_buf/write.rs b/azalea-protocol/src/mc_buf/write.rs index c46297a6..95c39bd2 100644 --- a/azalea-protocol/src/mc_buf/write.rs +++ b/azalea-protocol/src/mc_buf/write.rs @@ -4,6 +4,7 @@ use azalea_core::{ difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation, serializable_uuid::SerializableUuid, BlockPos, ChunkSectionPos, Direction, Slot, }; +use azalea_crypto::SaltSignaturePair; use byteorder::{BigEndian, WriteBytesExt}; use std::{collections::HashMap, io::Write}; use uuid::Uuid; @@ -436,3 +437,11 @@ impl McBufWritable for ChunkSectionPos { Ok(()) } } + +impl McBufWritable for SaltSignaturePair { + fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { + self.salt.write_into(buf)?; + self.signature.write_into(buf)?; + Ok(()) + } +} -- cgit v1.2.3