Archived
0

NetStream -> NetInputStream & NetOutputStream

This commit is contained in:
2018-07-25 22:47:32 +03:00
parent 1bd0e6aafe
commit e22b32b9fb
37 changed files with 210 additions and 234 deletions

View File

@@ -9,9 +9,9 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.CSPacket;
import mc.core.network.NetStream;
import mc.core.network.NetInputStream;
import mc.core.network.proto_1_12_2.State;
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetStream;
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetInputStream;
import java.util.List;
@@ -36,7 +36,7 @@ public class PacketDecoder extends ByteToMessageDecoder {
log.debug("ByteBuf readableBytes: {}", in.readableBytes());
State state = ctx.channel().attr(ATTR_STATE).get();
NetStream netStream = new WrapperNetStream(in);
NetInputStream netStream = new WrapperNetInputStream(in);
int packetSize = netStream.readVarInt();
log.debug("Packet size: {}", packetSize);

View File

@@ -8,11 +8,11 @@ import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.State;
import mc.core.network.proto_1_12_2.netty.wrappers.ByteArrayOutputNetStream;
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetStream;
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetOutputStream;
import static mc.core.network.proto_1_12_2.netty.NettyServer.ATTR_STATE;
@@ -41,10 +41,10 @@ public class PacketEncoder extends MessageToByteEncoder<SCPacket> {
log.debug("Send {}:{}", state, packet);
NetStream netStream = new ByteArrayOutputNetStream();
NetOutputStream netStream = new ByteArrayOutputNetStream();
packet.writeSelf(netStream);
byte[] bytes = ((ByteArrayOutputNetStream) netStream).toByteArray();
netStream = new WrapperNetStream(out);
netStream = new WrapperNetOutputStream(out);
netStream.writeVarInt(bytes.length + sizeVarInt(id));
netStream.writeVarInt(id);

View File

@@ -4,63 +4,13 @@
*/
package mc.core.network.proto_1_12_2.netty.wrappers;
import mc.core.network.proto_1_12_2.NetStream_p340;
import mc.core.network.proto_1_12_2.NetOutputStream_p340;
import java.io.ByteArrayOutputStream;
public class ByteArrayOutputNetStream extends NetStream_p340 {
public class ByteArrayOutputNetStream extends NetOutputStream_p340 {
private ByteArrayOutputStream baos = new ByteArrayOutputStream();
@Override
public boolean readBoolean() {
throw new UnsupportedOperationException();
}
@Override
public byte readByte() {
throw new UnsupportedOperationException();
}
@Override
public void readBytes(byte[] buffer) {
throw new UnsupportedOperationException();
}
@Override
public int readUnsignedByte() {
throw new UnsupportedOperationException();
}
@Override
public int readUnsignedShort() {
throw new UnsupportedOperationException();
}
@Override
public short readShort() {
throw new UnsupportedOperationException();
}
@Override
public int readInt() {
throw new UnsupportedOperationException();
}
@Override
public long readLong() {
throw new UnsupportedOperationException();
}
@Override
public float readFloat() {
throw new UnsupportedOperationException();
}
@Override
public double readDouble() {
throw new UnsupportedOperationException();
}
@Override
public void writeBoolean(boolean value) {
baos.write(value ? 1 : 0);
@@ -117,11 +67,6 @@ public class ByteArrayOutputNetStream extends NetStream_p340 {
writeLong(Double.doubleToLongBits(value));
}
@Override
public void skipBytes(int count) {
throw new UnsupportedOperationException();
}
public byte[] toByteArray() {
return baos.toByteArray();
}

View File

@@ -1,17 +1,17 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-04-08
* 2018-07-25
*/
package mc.core.network.proto_1_12_2.netty.wrappers;
import io.netty.buffer.ByteBuf;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.proto_1_12_2.NetStream_p340;
import mc.core.network.proto_1_12_2.NetInputStream_p340;
@Slf4j
@RequiredArgsConstructor
public class WrapperNetStream extends NetStream_p340 {
public class WrapperNetInputStream extends NetInputStream_p340 {
private final ByteBuf byteBuf;
@Override
@@ -64,51 +64,6 @@ public class WrapperNetStream extends NetStream_p340 {
return byteBuf.readDouble();
}
@Override
public void writeBoolean(boolean value) {
byteBuf.writeBoolean(value);
}
@Override
public void writeByte(int value) {
byteBuf.writeByte(value);
}
@Override
public void writeUnsignedByte(int value) {
byteBuf.writeByte((byte)(value & 0xFF));
}
@Override
public void writeBytes(byte[] buffer) {
byteBuf.writeBytes(buffer);
}
@Override
public void writeShort(int value) {
byteBuf.writeShort(value);
}
@Override
public void writeInt(int value) {
byteBuf.writeInt(value);
}
@Override
public void writeLong(long value) {
byteBuf.writeLong(value);
}
@Override
public void writeFloat(float value) {
byteBuf.writeFloat(value);
}
@Override
public void writeDouble(double value) {
byteBuf.writeDouble(value);
}
@Override
public void skipBytes(int count) {
byteBuf.skipBytes(count);

View File

@@ -0,0 +1,61 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-07-25
*/
package mc.core.network.proto_1_12_2.netty.wrappers;
import io.netty.buffer.ByteBuf;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.proto_1_12_2.NetOutputStream_p340;
@Slf4j
@RequiredArgsConstructor
public class WrapperNetOutputStream extends NetOutputStream_p340 {
private final ByteBuf byteBuf;
@Override
public void writeBoolean(boolean value) {
byteBuf.writeBoolean(value);
}
@Override
public void writeByte(int value) {
byteBuf.writeByte(value);
}
@Override
public void writeUnsignedByte(int value) {
byteBuf.writeByte((byte)(value & 0xFF));
}
@Override
public void writeBytes(byte[] buffer) {
byteBuf.writeBytes(buffer);
}
@Override
public void writeShort(int value) {
byteBuf.writeShort(value);
}
@Override
public void writeInt(int value) {
byteBuf.writeInt(value);
}
@Override
public void writeLong(long value) {
byteBuf.writeLong(value);
}
@Override
public void writeFloat(float value) {
byteBuf.writeFloat(value);
}
@Override
public void writeDouble(double value) {
byteBuf.writeDouble(value);
}
}