From 3f5511ebdc10a6f0822b59c944543d14b39dbf54 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Wed, 4 Apr 2018 00:10:13 +0300 Subject: [PATCH] packet: expected length --- src/main/java/mc/core/NetStream.java | 3 +++ src/main/java/mc/core/netty/PacketDecoder.java | 1 + .../java/mc/core/netty/WrapperByteBufNetStream.java | 11 +++++++++++ 3 files changed, 15 insertions(+) diff --git a/src/main/java/mc/core/NetStream.java b/src/main/java/mc/core/NetStream.java index da1db3b..8c2d63b 100644 --- a/src/main/java/mc/core/NetStream.java +++ b/src/main/java/mc/core/NetStream.java @@ -26,4 +26,7 @@ public interface NetStream { int readUnsignedShort(); void skipBytes(int count); + + void setExpectedLength(int value); + int getExpectedLength(); } diff --git a/src/main/java/mc/core/netty/PacketDecoder.java b/src/main/java/mc/core/netty/PacketDecoder.java index d2b8a4a..8261193 100644 --- a/src/main/java/mc/core/netty/PacketDecoder.java +++ b/src/main/java/mc/core/netty/PacketDecoder.java @@ -21,6 +21,7 @@ public class PacketDecoder extends ReplayingDecoder { NetStream netStream = new WrapperByteBufNetStream(byteBuf); int length = netStream.readVarInt(); + netStream.setExpectedLength(length); int id = netStream.readVarInt(); log.debug("PktLEN: {} | PktID: {}", length, id); diff --git a/src/main/java/mc/core/netty/WrapperByteBufNetStream.java b/src/main/java/mc/core/netty/WrapperByteBufNetStream.java index e5a07b2..fa1c4a2 100644 --- a/src/main/java/mc/core/netty/WrapperByteBufNetStream.java +++ b/src/main/java/mc/core/netty/WrapperByteBufNetStream.java @@ -13,6 +13,7 @@ import java.nio.charset.StandardCharsets; @RequiredArgsConstructor public class WrapperByteBufNetStream implements NetStream { private final ByteBuf byteBuf; + private int length; @Override public byte readByte() { @@ -128,4 +129,14 @@ public class WrapperByteBufNetStream implements NetStream { public void skipBytes(int count) { byteBuf.skipBytes(count); } + + @Override + public void setExpectedLength(int value) { + this.length = value; + } + + @Override + public int getExpectedLength() { + return length; + } }