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

@@ -8,5 +8,5 @@ package mc.core.network;
* Пакеты Client->Server * Пакеты Client->Server
*/ */
public interface CSPacket { public interface CSPacket {
void readSelf(NetStream netStream); void readSelf(NetInputStream netStream);
} }

View File

@@ -1,6 +1,6 @@
/* /*
* DmitriyMX <dimon550@gmail.com> * DmitriyMX <dimon550@gmail.com>
* 2018-03-28 * 2018-07-25
*/ */
package mc.core.network; package mc.core.network;
@@ -9,7 +9,7 @@ import lombok.Setter;
import java.util.UUID; import java.util.UUID;
public abstract class NetStream { public abstract class NetInputStream {
@Getter @Getter
@Setter @Setter
private int dataSize; private int dataSize;
@@ -28,18 +28,5 @@ public abstract class NetStream {
public abstract String readString(); public abstract String readString();
public abstract UUID readUUID(); public abstract UUID readUUID();
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 abstract void writeShort(int value);
public abstract void writeInt(int value);
public abstract void writeVarInt(int value);
public abstract void writeLong(long value);
public abstract void writeFloat(float value);
public abstract void writeDouble(double value);
public abstract void writeString(String value);
public abstract void writeUUID(UUID uuid);
public abstract void skipBytes(int count); public abstract void skipBytes(int count);
} }

View File

@@ -0,0 +1,22 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-07-25
*/
package mc.core.network;
import java.util.UUID;
public abstract class NetOutputStream {
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 abstract void writeShort(int value);
public abstract void writeInt(int value);
public abstract void writeVarInt(int value);
public abstract void writeLong(long value);
public abstract void writeFloat(float value);
public abstract void writeDouble(double value);
public abstract void writeString(String value);
public abstract void writeUUID(UUID uuid);
}

View File

@@ -8,5 +8,5 @@ package mc.core.network;
* Пакеты Server->Client * Пакеты Server->Client
*/ */
public interface SCPacket { public interface SCPacket {
void writeSelf(NetStream netStream); void writeSelf(NetOutputStream netStream);
} }

View File

@@ -0,0 +1,52 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-07-25
*/
package mc.core.network.proto_1_12_2;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.NetInputStream;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
@Slf4j
public abstract class NetInputStream_p340 extends NetInputStream {
@Override
public int readVarInt() {
int numRead = 0;
int result = 0;
byte read;
do {
read = readByte();
int value = (read & 0b01111111);
result |= (value << (7 * numRead));
numRead++;
if (numRead > 5) {
log.warn("VarInt is too big");
break;
}
} while ((read & 0b10000000) != 0);
return result;
}
@Override
public String readString() {
int size = readVarInt();
if (size == 0) {
log.warn("String zero length??");
return "";
}
byte[] bytes = new byte[size];
readBytes(bytes);
return new String(bytes, StandardCharsets.UTF_8);
}
@Override
public UUID readUUID() {
return new UUID(readLong(), readLong());
}
}

View File

@@ -1,37 +1,17 @@
/* /*
* DmitriyMX <dimon550@gmail.com> * DmitriyMX <dimon550@gmail.com>
* 2018-06-10 * 2018-07-25
*/ */
package mc.core.network.proto_1_12_2; package mc.core.network.proto_1_12_2;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.UUID; import java.util.UUID;
@Slf4j @Slf4j
public abstract class NetStream_p340 extends NetStream { public abstract class NetOutputStream_p340 extends NetOutputStream {
@Override
public int readVarInt() {
int numRead = 0;
int result = 0;
byte read;
do {
read = readByte();
int value = (read & 0b01111111);
result |= (value << (7 * numRead));
numRead++;
if (numRead > 5) {
log.warn("VarInt is too big");
break;
}
} while ((read & 0b10000000) != 0);
return result;
}
@Override @Override
public void writeVarInt(int value) { public void writeVarInt(int value) {
do { do {
@@ -45,19 +25,6 @@ public abstract class NetStream_p340 extends NetStream {
} while (value != 0); } while (value != 0);
} }
@Override
public String readString() {
int size = readVarInt();
if (size == 0) {
log.warn("String zero length??");
return "";
}
byte[] bytes = new byte[size];
readBytes(bytes);
return new String(bytes, StandardCharsets.UTF_8);
}
@Override @Override
public void writeString(String value) { public void writeString(String value) {
if (value.length() > Short.MAX_VALUE) { if (value.length() > Short.MAX_VALUE) {
@@ -72,11 +39,6 @@ public abstract class NetStream_p340 extends NetStream {
} }
} }
@Override
public UUID readUUID() {
return new UUID(readLong(), readLong());
}
@Override @Override
public void writeUUID(UUID uuid) { public void writeUUID(UUID uuid) {
writeLong(uuid.getMostSignificantBits()); writeLong(uuid.getMostSignificantBits());

View File

@@ -5,13 +5,13 @@
package mc.core.network.proto_1_12_2.packets; package mc.core.network.proto_1_12_2.packets;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
public class AnimationPacket implements CSPacket { public class AnimationPacket implements CSPacket {
private int handAnimation; private int handAnimation;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.handAnimation = netStream.readVarInt(); this.handAnimation = netStream.readVarInt();
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.Data; import lombok.Data;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text; import mc.core.text.Text;
@@ -63,7 +63,7 @@ public class BossBarPacket implements SCPacket {
private BarData barData; private BarData barData;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeUUID(uuid); netStream.writeUUID(uuid);
netStream.writeVarInt(action); netStream.writeVarInt(action);

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
@Getter @Getter
@ToString @ToString
@@ -15,7 +15,7 @@ public class ChatMessageClientPacket implements CSPacket {
private String message; private String message;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.message = netStream.readString(); this.message = netStream.readString();
} }
} }

View File

@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.chat.MessageType; import mc.core.chat.MessageType;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text; import mc.core.text.Text;
@@ -23,7 +23,7 @@ public class ChatMessageServerPacket implements SCPacket {
private MessageType type; private MessageType type;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeString(TextSerializer.serialize(text).toString()); netStream.writeString(TextSerializer.serialize(text).toString());
netStream.writeByte(type.getId()); netStream.writeByte(type.getId());
} }

View File

@@ -8,7 +8,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
@NoArgsConstructor @NoArgsConstructor
@Getter @Getter
@@ -28,7 +28,7 @@ public class ClientSettingsPacket implements CSPacket {
private int mainHand; private int mainHand;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
locale = netStream.readString(); locale = netStream.readString();
viewDistance = netStream.readByte(); viewDistance = netStream.readByte();
chatMode = netStream.readVarInt(); chatMode = netStream.readVarInt();

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text; import mc.core.text.Text;
@@ -19,7 +19,7 @@ public class DisconnectPacket implements SCPacket {
private Text reason; private Text reason;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeString(TextSerializer.serialize(reason).toString()); netStream.writeString(TextSerializer.serialize(reason).toString());
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import java.security.PublicKey; import java.security.PublicKey;
@@ -21,7 +21,7 @@ public class EncryptionRequestPacket implements SCPacket {
private byte[] verifyToken; private byte[] verifyToken;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeString(serverId); netStream.writeString(serverId);
byte[] bytes = publicKey.getEncoded(); byte[] bytes = publicKey.getEncoded();
netStream.writeVarInt(bytes.length); netStream.writeVarInt(bytes.length);

View File

@@ -8,7 +8,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; 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.State;
@NoArgsConstructor @NoArgsConstructor
@@ -21,7 +21,7 @@ public class HandshakePacket implements CSPacket {
private State nextState; private State nextState;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.protocolVersion = netStream.readVarInt(); this.protocolVersion = netStream.readVarInt();
this.address = netStream.readString(); this.address = netStream.readString();
this.serverPort = netStream.readUnsignedShort(); this.serverPort = netStream.readUnsignedShort();

View File

@@ -5,13 +5,13 @@
package mc.core.network.proto_1_12_2.packets; package mc.core.network.proto_1_12_2.packets;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
public class HeldItemChangePacket implements CSPacket { public class HeldItemChangePacket implements CSPacket {
private int slot; private int slot;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.slot = netStream.readShort(); this.slot = netStream.readShort();
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.player.PlayerMode; import mc.core.player.PlayerMode;
@@ -22,7 +22,7 @@ public class JoinGamePacket implements SCPacket {
private String levelType; private String levelType;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeInt(entityId); netStream.writeInt(entityId);
netStream.writeUnsignedByte(mode.getId()); netStream.writeUnsignedByte(mode.getId());
netStream.writeInt(dimension); netStream.writeInt(dimension);

View File

@@ -8,9 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.*;
import mc.core.network.NetStream;
import mc.core.network.SCPacket;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@@ -20,12 +18,12 @@ public class KeepAlivePacket implements CSPacket, SCPacket {
private long payload; private long payload;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.payload = netStream.readLong(); this.payload = netStream.readLong();
} }
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeLong(this.payload); netStream.writeLong(this.payload);
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
@Getter @Getter
@ToString @ToString
@@ -15,7 +15,7 @@ public class LoginStartPacket implements CSPacket {
private String playerName; private String playerName;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.playerName = netStream.readString(); this.playerName = netStream.readString();
} }
} }

View File

@@ -8,7 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import java.util.UUID; import java.util.UUID;
@@ -22,7 +22,7 @@ public class LoginSuccessPacket implements SCPacket {
private String playerName; private String playerName;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeString(uuid.toString()); netStream.writeString(uuid.toString());
netStream.writeString(playerName); netStream.writeString(playerName);
} }

View File

@@ -5,21 +5,19 @@
package mc.core.network.proto_1_12_2.packets; package mc.core.network.proto_1_12_2.packets;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.*;
import mc.core.network.NetStream;
import mc.core.network.SCPacket;
@ToString @ToString
public class PingPacket implements CSPacket, SCPacket { public class PingPacket implements CSPacket, SCPacket {
private long payload; private long payload;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.payload = netStream.readLong(); this.payload = netStream.readLong();
} }
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeLong(payload); netStream.writeLong(payload);
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
@NoArgsConstructor @NoArgsConstructor
@@ -22,7 +22,7 @@ public class PlayerAbilitiesPacket implements SCPacket {
private float fieldOfView = flyingSpeed; private float fieldOfView = flyingSpeed;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
byte flag = 0; byte flag = 0;
if (godMode) flag = (byte)(flag | 0x01); if (godMode) flag = (byte)(flag | 0x01);
if (flying) flag = (byte)(flag | 0x02); if (flying) flag = (byte)(flag | 0x02);

View File

@@ -6,7 +6,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text; import mc.core.text.Text;
@@ -19,7 +19,7 @@ public class PlayerListHeaderAndFooterPacket implements SCPacket {
private Text footer; private Text footer;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
if (header == null) { if (header == null) {
netStream.writeString("{\"translate\":\"\"}"); netStream.writeString("{\"translate\":\"\"}");
} else { } else {

View File

@@ -9,7 +9,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.player.PlayerMode; import mc.core.player.PlayerMode;
@@ -44,7 +44,7 @@ public class PlayerListItemPacket implements SCPacket {
private List<PlayerData> listPlayers = new ArrayList<>(); private List<PlayerData> listPlayers = new ArrayList<>();
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeVarInt(action); netStream.writeVarInt(action);
netStream.writeVarInt(listPlayers.size()); netStream.writeVarInt(listPlayers.size());

View File

@@ -9,9 +9,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.Location; import mc.core.Location;
import mc.core.network.CSPacket; import mc.core.network.*;
import mc.core.network.NetStream;
import mc.core.network.SCPacket;
import mc.core.player.Look; import mc.core.player.Look;
@NoArgsConstructor @NoArgsConstructor
@@ -25,7 +23,7 @@ public class PlayerPositionAndLookPacket implements SCPacket, CSPacket {
private boolean onGround = false; private boolean onGround = false;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeDouble(location.getX()); netStream.writeDouble(location.getX());
netStream.writeDouble(location.getY()); netStream.writeDouble(location.getY());
netStream.writeDouble(location.getZ()); netStream.writeDouble(location.getZ());
@@ -42,7 +40,7 @@ public class PlayerPositionAndLookPacket implements SCPacket, CSPacket {
} }
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.location = new Location( this.location = new Location(
netStream.readDouble(), netStream.readDouble(),
netStream.readDouble(), netStream.readDouble(),

View File

@@ -5,9 +5,7 @@
package mc.core.network.proto_1_12_2.packets; package mc.core.network.proto_1_12_2.packets;
import lombok.*; import lombok.*;
import mc.core.network.CSPacket; import mc.core.network.*;
import mc.core.network.NetStream;
import mc.core.network.SCPacket;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@@ -19,14 +17,14 @@ public class PluginMessagePacket implements SCPacket, CSPacket {
private byte[] data; private byte[] data;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
channelName = netStream.readString(); channelName = netStream.readString();
data = new byte[netStream.getDataSize() - channelName.getBytes().length - 1]; data = new byte[netStream.getDataSize() - channelName.getBytes().length - 1];
netStream.readBytes(data); netStream.readBytes(data);
} }
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeString(channelName); netStream.writeString(channelName);
netStream.writeBytes(data); netStream.writeBytes(data);
} }

View File

@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.Location; import mc.core.Location;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.LocationSerializer; import mc.core.network.proto_1_12_2.serializers.LocationSerializer;
@@ -21,7 +21,7 @@ public class SpawnPositionPacket implements SCPacket {
private Location location; private Location location;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeLong(LocationSerializer.serialize(location)); netStream.writeLong(LocationSerializer.serialize(location));
} }
} }

View File

@@ -6,11 +6,11 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
@ToString @ToString
public class StatusRequestPacket implements CSPacket { public class StatusRequestPacket implements CSPacket {
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
} }
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
@Setter @Setter
@@ -29,7 +29,7 @@ public class StatusResponsePacket implements SCPacket {
private byte[] faviconBase64; private byte[] faviconBase64;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
JsonObject playersObj = new JsonObject(); JsonObject playersObj = new JsonObject();
playersObj.addProperty("max", maxOnline); playersObj.addProperty("max", maxOnline);
playersObj.addProperty("online", online); playersObj.addProperty("online", online);

View File

@@ -6,7 +6,7 @@ package mc.core.network.proto_1_12_2.packets;
import mc.core.Location; import mc.core.Location;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
import mc.core.network.proto_1_12_2.serializers.LocationSerializer; import mc.core.network.proto_1_12_2.serializers.LocationSerializer;
public class TabCompletePacket implements CSPacket { public class TabCompletePacket implements CSPacket {
@@ -16,7 +16,7 @@ public class TabCompletePacket implements CSPacket {
private Location location; private Location location;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
this.text = netStream.readString(); this.text = netStream.readString();
this.assumeCommand = netStream.readBoolean(); this.assumeCommand = netStream.readBoolean();
this.hasPosition = netStream.readBoolean(); this.hasPosition = netStream.readBoolean();

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.CSPacket; import mc.core.network.CSPacket;
import mc.core.network.NetStream; import mc.core.network.NetInputStream;
@Getter @Getter
@ToString @ToString
@@ -15,7 +15,7 @@ public class TeleportConfirmPacket implements CSPacket {
private int teleportId; private int teleportId;
@Override @Override
public void readSelf(NetStream netStream) { public void readSelf(NetInputStream netStream) {
teleportId = netStream.readVarInt(); teleportId = netStream.readVarInt();
} }
} }

View File

@@ -8,7 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
@AllArgsConstructor @AllArgsConstructor
@@ -20,7 +20,7 @@ public class TimeUpdatePacket implements SCPacket {
private long worldage; private long worldage;
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeLong(worldage); netStream.writeLong(worldage);
netStream.writeLong(time); netStream.writeLong(time);
} }

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.network.NetStream; import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text; import mc.core.text.Text;
@@ -91,7 +91,7 @@ public class TitlePacket implements SCPacket {
} }
@Override @Override
public void writeSelf(NetStream netStream) { public void writeSelf(NetOutputStream netStream) {
netStream.writeVarInt(this.action); netStream.writeVarInt(this.action);
switch (this.action) { switch (this.action) {

View File

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

View File

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

View File

@@ -4,63 +4,13 @@
*/ */
package mc.core.network.proto_1_12_2.netty.wrappers; 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; import java.io.ByteArrayOutputStream;
public class ByteArrayOutputNetStream extends NetStream_p340 { public class ByteArrayOutputNetStream extends NetOutputStream_p340 {
private ByteArrayOutputStream baos = new ByteArrayOutputStream(); 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 @Override
public void writeBoolean(boolean value) { public void writeBoolean(boolean value) {
baos.write(value ? 1 : 0); baos.write(value ? 1 : 0);
@@ -117,11 +67,6 @@ public class ByteArrayOutputNetStream extends NetStream_p340 {
writeLong(Double.doubleToLongBits(value)); writeLong(Double.doubleToLongBits(value));
} }
@Override
public void skipBytes(int count) {
throw new UnsupportedOperationException();
}
public byte[] toByteArray() { public byte[] toByteArray() {
return baos.toByteArray(); return baos.toByteArray();
} }

View File

@@ -1,17 +1,17 @@
/* /*
* DmitriyMX <dimon550@gmail.com> * DmitriyMX <dimon550@gmail.com>
* 2018-04-08 * 2018-07-25
*/ */
package mc.core.network.proto_1_12_2.netty.wrappers; package mc.core.network.proto_1_12_2.netty.wrappers;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; 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 @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
public class WrapperNetStream extends NetStream_p340 { public class WrapperNetInputStream extends NetInputStream_p340 {
private final ByteBuf byteBuf; private final ByteBuf byteBuf;
@Override @Override
@@ -64,51 +64,6 @@ public class WrapperNetStream extends NetStream_p340 {
return byteBuf.readDouble(); 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 @Override
public void skipBytes(int count) { public void skipBytes(int count) {
byteBuf.skipBytes(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);
}
}