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

@@ -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>
* 2018-06-10
* 2018-07-25
*/
package mc.core.network.proto_1_12_2;
import lombok.extern.slf4j.Slf4j;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
@Slf4j
public abstract class NetStream_p340 extends NetStream {
@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;
}
public abstract class NetOutputStream_p340 extends NetOutputStream {
@Override
public void writeVarInt(int value) {
do {
@@ -45,19 +25,6 @@ public abstract class NetStream_p340 extends NetStream {
} 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
public void writeString(String 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
public void writeUUID(UUID uuid) {
writeLong(uuid.getMostSignificantBits());

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Setter;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text;
@@ -19,7 +19,7 @@ public class DisconnectPacket implements SCPacket {
private Text reason;
@Override
public void writeSelf(NetStream netStream) {
public void writeSelf(NetOutputStream netStream) {
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.NoArgsConstructor;
import lombok.Setter;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
import java.security.PublicKey;
@@ -21,7 +21,7 @@ public class EncryptionRequestPacket implements SCPacket {
private byte[] verifyToken;
@Override
public void writeSelf(NetStream netStream) {
public void writeSelf(NetOutputStream netStream) {
netStream.writeString(serverId);
byte[] bytes = publicKey.getEncoded();
netStream.writeVarInt(bytes.length);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,7 +7,7 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
@NoArgsConstructor
@@ -22,7 +22,7 @@ public class PlayerAbilitiesPacket implements SCPacket {
private float fieldOfView = flyingSpeed;
@Override
public void writeSelf(NetStream netStream) {
public void writeSelf(NetOutputStream netStream) {
byte flag = 0;
if (godMode) flag = (byte)(flag | 0x01);
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.ToString;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
import mc.core.network.proto_1_12_2.serializers.TextSerializer;
import mc.core.text.Text;
@@ -19,7 +19,7 @@ public class PlayerListHeaderAndFooterPacket implements SCPacket {
private Text footer;
@Override
public void writeSelf(NetStream netStream) {
public void writeSelf(NetOutputStream netStream) {
if (header == null) {
netStream.writeString("{\"translate\":\"\"}");
} else {

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,11 +6,11 @@ package mc.core.network.proto_1_12_2.packets;
import lombok.ToString;
import mc.core.network.CSPacket;
import mc.core.network.NetStream;
import mc.core.network.NetInputStream;
@ToString
public class StatusRequestPacket implements CSPacket {
@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 lombok.Setter;
import lombok.ToString;
import mc.core.network.NetStream;
import mc.core.network.NetOutputStream;
import mc.core.network.SCPacket;
@Setter
@@ -29,7 +29,7 @@ public class StatusResponsePacket implements SCPacket {
private byte[] faviconBase64;
@Override
public void writeSelf(NetStream netStream) {
public void writeSelf(NetOutputStream netStream) {
JsonObject playersObj = new JsonObject();
playersObj.addProperty("max", maxOnline);
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.network.CSPacket;
import mc.core.network.NetStream;
import mc.core.network.NetInputStream;
import mc.core.network.proto_1_12_2.serializers.LocationSerializer;
public class TabCompletePacket implements CSPacket {
@@ -16,7 +16,7 @@ public class TabCompletePacket implements CSPacket {
private Location location;
@Override
public void readSelf(NetStream netStream) {
public void readSelf(NetInputStream netStream) {
this.text = netStream.readString();
this.assumeCommand = 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.ToString;
import mc.core.network.CSPacket;
import mc.core.network.NetStream;
import mc.core.network.NetInputStream;
@Getter
@ToString
@@ -15,7 +15,7 @@ public class TeleportConfirmPacket implements CSPacket {
private int teleportId;
@Override
public void readSelf(NetStream netStream) {
public void readSelf(NetInputStream netStream) {
teleportId = netStream.readVarInt();
}
}

View File

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

View File

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