diff options
| author | mat <github@matdoes.dev> | 2022-05-07 21:44:11 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-05-07 21:44:11 -0500 |
| commit | f62a681474df698d87deb43c71238b83a26f0f1f (patch) | |
| tree | 68b26f053faf818cf6780688f41d7840cdcc7494 /azalea-protocol/src/mc_buf | |
| parent | 98eee6d908a5651c55131b80dc3c153a6708052e (diff) | |
| download | azalea-drasl-f62a681474df698d87deb43c71238b83a26f0f1f.tar.xz | |
remove entities packet
Diffstat (limited to 'azalea-protocol/src/mc_buf')
| -rwxr-xr-x | azalea-protocol/src/mc_buf/read.rs | 12 | ||||
| -rwxr-xr-x | azalea-protocol/src/mc_buf/write.rs | 11 |
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> { |
