From 00abbb4acdc4f888995e530d63bfb6b6bca7a37e Mon Sep 17 00:00:00 2001 From: P0nk Date: Sun, 20 Jun 2021 17:15:10 +0200 Subject: [PATCH] Add InPacket interface and ByteBuf implementation Replacement for LittleEndianAccessor, SeekableLittleEndianAccessor, GenericLittleEndianAccessor, and GenericSeekableLittleEndianAccessor. --- pom.xml | 5 ++ src/main/java/net/packet/ByteBufInPacket.java | 79 +++++++++++++++++++ .../java/net/packet/ByteBufOutPacket.java | 11 +++ src/main/java/net/packet/InPacket.java | 17 ++++ src/main/java/net/packet/OutPacket.java | 4 + src/main/java/net/packet/Packet.java | 5 ++ 6 files changed, 121 insertions(+) create mode 100644 src/main/java/net/packet/ByteBufInPacket.java create mode 100644 src/main/java/net/packet/ByteBufOutPacket.java create mode 100644 src/main/java/net/packet/InPacket.java create mode 100644 src/main/java/net/packet/OutPacket.java create mode 100644 src/main/java/net/packet/Packet.java diff --git a/pom.xml b/pom.xml index 7df287a87f..ba08e2d62a 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,11 @@ jcip-annotations 1.0 + + io.netty + netty-buffer + 4.1.65.Final + diff --git a/src/main/java/net/packet/ByteBufInPacket.java b/src/main/java/net/packet/ByteBufInPacket.java new file mode 100644 index 0000000000..481c5855cb --- /dev/null +++ b/src/main/java/net/packet/ByteBufInPacket.java @@ -0,0 +1,79 @@ +package net.packet; + +import io.netty.buffer.ByteBuf; + +import java.awt.*; + +public class ByteBufInPacket implements InPacket { + private final ByteBuf byteBuf; + + public ByteBufInPacket(ByteBuf byteBuf) { + this.byteBuf = byteBuf; + } + + @Override + public byte[] getBytes() { + // TODO + return null; + } + + @Override + public byte readByte() { + return byteBuf.readByte(); + } + + @Override + public short readShort() { + return byteBuf.readShortLE(); + } + + @Override + public int readInt() { + return byteBuf.readIntLE(); + } + + @Override + public long readLong() { + return byteBuf.readLongLE(); + } + + @Override + public Point readPoint() { + final short x = byteBuf.readShortLE(); + final short y = byteBuf.readShortLE(); + return new Point(x, y); + } + + @Override + public String readString() { + // TODO + return null; + } + + @Override + public byte[] read(int numberOfBytes) { + byte[] bytes = new byte[numberOfBytes]; + byteBuf.readBytes(bytes); + return bytes; + } + + @Override + public void skip(int numberOfBytes) { + byteBuf.skipBytes(numberOfBytes); + } + + @Override + public int available() { + return byteBuf.readableBytes(); + } + + @Override + public void seek(int byteOffset) { + byteBuf.readerIndex(byteOffset); + } + + @Override + public int getPosition() { + return byteBuf.readerIndex(); + } +} diff --git a/src/main/java/net/packet/ByteBufOutPacket.java b/src/main/java/net/packet/ByteBufOutPacket.java new file mode 100644 index 0000000000..f2aa491cfb --- /dev/null +++ b/src/main/java/net/packet/ByteBufOutPacket.java @@ -0,0 +1,11 @@ +package net.packet; + +import io.netty.buffer.ByteBuf; + +public class ByteBufOutPacket implements OutPacket { + private final ByteBuf byteBuf; + + public ByteBufOutPacket(ByteBuf byteBuf) { + this.byteBuf = byteBuf; + } +} diff --git a/src/main/java/net/packet/InPacket.java b/src/main/java/net/packet/InPacket.java new file mode 100644 index 0000000000..53ef38bb42 --- /dev/null +++ b/src/main/java/net/packet/InPacket.java @@ -0,0 +1,17 @@ +package net.packet; + +import java.awt.*; + +public interface InPacket extends Packet { + byte readByte(); + short readShort(); + int readInt(); + long readLong(); + Point readPoint(); + String readString(); + byte[] read(int numberOfBytes); + void skip(int numberOfBytes); + int available(); + void seek(int byteOffset); + int getPosition(); +} diff --git a/src/main/java/net/packet/OutPacket.java b/src/main/java/net/packet/OutPacket.java new file mode 100644 index 0000000000..6d1fb8982a --- /dev/null +++ b/src/main/java/net/packet/OutPacket.java @@ -0,0 +1,4 @@ +package net.packet; + +public interface OutPacket extends Packet { +} diff --git a/src/main/java/net/packet/Packet.java b/src/main/java/net/packet/Packet.java new file mode 100644 index 0000000000..8e1b7cfb99 --- /dev/null +++ b/src/main/java/net/packet/Packet.java @@ -0,0 +1,5 @@ +package net.packet; + +public interface Packet { + byte[] getBytes(); +}