From d783317b5de7810087c968468c0a1fe27dbd413c Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 23 Dec 2018 17:17:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D1=80=D0=BD=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20NetStream=20(extends=20Input/O?= =?UTF-8?q?utput=20stream)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/mc/core/network/NetInputStream.java | 34 +++++++++++++++---- .../java/mc/core/network/NetOutputStream.java | 28 +++++++++++---- .../ByteArrayOutputNetStream.java | 8 ++--- .../proto_1_12_2/NetInputStream_p340.java | 4 --- .../proto_1_12_2/NetOutputStream_p340.java | 6 ---- .../packets/ByteArrayInputNetStream.java | 12 ++++--- .../netty/wrappers/WrapperNetInputStream.java | 9 ++--- .../wrappers/WrapperNetOutputStream.java | 8 ++--- 8 files changed, 65 insertions(+), 44 deletions(-) diff --git a/core/src/main/java/mc/core/network/NetInputStream.java b/core/src/main/java/mc/core/network/NetInputStream.java index 9ae1049..2c40cb6 100644 --- a/core/src/main/java/mc/core/network/NetInputStream.java +++ b/core/src/main/java/mc/core/network/NetInputStream.java @@ -1,22 +1,23 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network; import lombok.Getter; import lombok.Setter; +import java.io.IOException; +import java.io.InputStream; import java.util.UUID; -public abstract class NetInputStream { +public abstract class NetInputStream extends InputStream { @Getter @Setter private int dataSize; public abstract boolean readBoolean(); public abstract byte readByte(); - public abstract void readBytes(byte[] buffer); + public int readBytes(byte[] buffer) { + return readBytes(buffer, 0, buffer.length); + } + public abstract int readBytes(byte[] buffer, int offset, int length); public abstract int readUnsignedByte(); public abstract int readUnsignedShort(); public abstract short readShort(); @@ -30,4 +31,25 @@ public abstract class NetInputStream { public abstract UUID readUUID(); public abstract void skipBytes(int count); + + @Override + public int read() throws IOException { + return readByte(); + } + + @Override + public int read(byte[] b) throws IOException { + return readBytes(b); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return readBytes(b, off, len); + } + + @Override + public long skip(long n) throws IOException { + skipBytes((int) n); + return n; + } } diff --git a/core/src/main/java/mc/core/network/NetOutputStream.java b/core/src/main/java/mc/core/network/NetOutputStream.java index 86c6f19..b7bf437 100644 --- a/core/src/main/java/mc/core/network/NetOutputStream.java +++ b/core/src/main/java/mc/core/network/NetOutputStream.java @@ -1,16 +1,17 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network; +import java.io.IOException; +import java.io.OutputStream; import java.util.UUID; -public abstract class NetOutputStream { +public abstract class NetOutputStream extends OutputStream { public abstract void writeBoolean(boolean value); public abstract void writeByte(int value); public abstract void writeUnsignedByte(int value); - public abstract void writeBytes(byte[] buffer); + public void writeBytes(byte[] buffer) { + writeBytes(buffer, 0, buffer.length); + } + public abstract void writeBytes(byte[] buffer, int offset, int lengtn); public abstract void writeShort(int value); public abstract void writeInt(int value); public abstract void writeVarInt(int value); @@ -19,4 +20,19 @@ public abstract class NetOutputStream { public abstract void writeDouble(double value); public abstract void writeString(String value); public abstract void writeUUID(UUID uuid); + + @Override + public void write(int b) throws IOException { + writeByte(b); + } + + @Override + public void write(byte[] b) throws IOException { + writeBytes(b); + } + + @Override + public void write(byte[] b, int off, int len) throws IOException { + writeBytes(b, off, len); + } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java index d496e05..6b5cbee 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java @@ -1,7 +1,3 @@ -/* - * DmitriyMX - * 2018-06-10 - */ package mc.core.network.proto_1_12_2; import java.io.ByteArrayOutputStream; @@ -25,8 +21,8 @@ public class ByteArrayOutputNetStream extends NetOutputStream_p340 { } @Override - public void writeBytes(byte[] buffer) { - baos.write(buffer, 0, buffer.length); + public void writeBytes(byte[] buffer, int offset, int lengtn) { + baos.write(buffer, offset, lengtn); } @Override diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetInputStream_p340.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetInputStream_p340.java index 84bbd08..93f8530 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetInputStream_p340.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetInputStream_p340.java @@ -1,7 +1,3 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network.proto_1_12_2; import lombok.extern.slf4j.Slf4j; diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetOutputStream_p340.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetOutputStream_p340.java index cbc3239..b4bcdbd 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetOutputStream_p340.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/NetOutputStream_p340.java @@ -1,7 +1,3 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network.proto_1_12_2; import lombok.extern.slf4j.Slf4j; @@ -22,8 +18,6 @@ public abstract class NetOutputStream_p340 extends NetOutputStream { writeByte(value); } - - @Override public void writeString(String value) { if (value.length() > Short.MAX_VALUE) { diff --git a/proto_1.12.2/src/test/java/mc/core/network/proto_1_12_2/packets/ByteArrayInputNetStream.java b/proto_1.12.2/src/test/java/mc/core/network/proto_1_12_2/packets/ByteArrayInputNetStream.java index 83ab4e1..960aa29 100644 --- a/proto_1.12.2/src/test/java/mc/core/network/proto_1_12_2/packets/ByteArrayInputNetStream.java +++ b/proto_1.12.2/src/test/java/mc/core/network/proto_1_12_2/packets/ByteArrayInputNetStream.java @@ -1,10 +1,12 @@ package mc.core.network.proto_1_12_2.packets; +import lombok.extern.slf4j.Slf4j; import mc.core.network.proto_1_12_2.NetInputStream_p340; import java.io.ByteArrayInputStream; import java.io.IOException; +@Slf4j public class ByteArrayInputNetStream extends NetInputStream_p340 { private ByteArrayInputStream bais; @@ -23,14 +25,16 @@ public class ByteArrayInputNetStream extends NetInputStream_p340 { } @Override - public void readBytes(byte[] buffer) { + public int readBytes(byte[] buffer, int offset, int length) { try { - int read = bais.read(buffer); - if (read < buffer.length) { + int read = bais.read(buffer, offset, length); + if (read < length) { throw new IOException("not enough data"); } + return read; } catch (IOException e) { - e.printStackTrace(); + log.error("", e); + return -1; } } diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetInputStream.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetInputStream.java index 215fc68..4658c5b 100644 --- a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetInputStream.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetInputStream.java @@ -1,7 +1,3 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network.proto_1_12_2.netty.wrappers; import io.netty.buffer.ByteBuf; @@ -25,8 +21,9 @@ public class WrapperNetInputStream extends NetInputStream_p340 { } @Override - public void readBytes(byte[] buffer) { - byteBuf.readBytes(buffer); + public int readBytes(byte[] buffer, int offset, int length) { + byteBuf.readBytes(buffer, offset, length); + return length; } @Override diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetOutputStream.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetOutputStream.java index 539dc2c..b227994 100644 --- a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetOutputStream.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetOutputStream.java @@ -1,7 +1,3 @@ -/* - * DmitriyMX - * 2018-07-25 - */ package mc.core.network.proto_1_12_2.netty.wrappers; import io.netty.buffer.ByteBuf; @@ -30,8 +26,8 @@ public class WrapperNetOutputStream extends NetOutputStream_p340 { } @Override - public void writeBytes(byte[] buffer) { - byteBuf.writeBytes(buffer); + public void writeBytes(byte[] buffer, int offset, int lengtn) { + byteBuf.writeBytes(buffer, offset, lengtn); } @Override