aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/mc_buf
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-05-07 21:44:11 -0500
committermat <github@matdoes.dev>2022-05-07 21:44:11 -0500
commitf62a681474df698d87deb43c71238b83a26f0f1f (patch)
tree68b26f053faf818cf6780688f41d7840cdcc7494 /azalea-protocol/src/mc_buf
parent98eee6d908a5651c55131b80dc3c153a6708052e (diff)
downloadazalea-drasl-f62a681474df698d87deb43c71238b83a26f0f1f.tar.xz
remove entities packet
Diffstat (limited to 'azalea-protocol/src/mc_buf')
-rwxr-xr-xazalea-protocol/src/mc_buf/read.rs12
-rwxr-xr-xazalea-protocol/src/mc_buf/write.rs11
2 files changed, 23 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> {