Add InPacket interface and ByteBuf implementation

Replacement for LittleEndianAccessor, SeekableLittleEndianAccessor,
GenericLittleEndianAccessor, and GenericSeekableLittleEndianAccessor.
This commit is contained in:
P0nk
2021-06-20 17:15:10 +02:00
parent eb7ee9dabe
commit 00abbb4acd
6 changed files with 121 additions and 0 deletions

View File

@@ -47,6 +47,11 @@
<artifactId>jcip-annotations</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>4.1.65.Final</version>
</dependency>
<!-- Logging -->
<dependency>

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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();
}

View File

@@ -0,0 +1,4 @@
package net.packet;
public interface OutPacket extends Packet {
}

View File

@@ -0,0 +1,5 @@
package net.packet;
public interface Packet {
byte[] getBytes();
}