From e777b8f518de2e81cd09e3fc444218c14666be38 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Thu, 14 Jun 2018 10:32:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network/proto_1_12_2/packets/DisconnectPacket.java | 6 ++---- .../proto_1_12_2/packets/EncryptionRequestPacket.java | 8 ++------ .../core/network/proto_1_12_2/packets/JoinGamePacket.java | 8 ++------ .../network/proto_1_12_2/packets/LoginSuccessPacket.java | 8 ++------ .../mc/core/network/proto_1_12_2/packets/PingPacket.java | 5 +---- .../proto_1_12_2/packets/PlayerAbilitiesPacket.java | 8 ++------ .../proto_1_12_2/packets/PlayerPositionAndLookPacket.java | 8 ++------ .../network/proto_1_12_2/packets/PluginMessagePacket.java | 7 +------ .../network/proto_1_12_2/packets/SpawnPositionPacket.java | 6 ++---- .../proto_1_12_2/packets/StatusResponsePacket.java | 7 ++----- .../mc/core/network/proto_1_12_2/netty/PacketEncoder.java | 7 +++++-- .../netty/wrappers}/ByteArrayOutputNetStream.java | 4 +++- 12 files changed, 26 insertions(+), 56 deletions(-) rename {proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2 => proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers}/ByteArrayOutputNetStream.java (96%) diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/DisconnectPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/DisconnectPacket.java index 7eb15c1..aaf9df4 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/DisconnectPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/DisconnectPacket.java @@ -7,8 +7,8 @@ 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.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import mc.core.network.proto_1_12_2.serializers.TextSerializer; import mc.core.text.Text; @@ -19,9 +19,7 @@ public class DisconnectPacket implements SCPacket { private Text reason; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); + public void writeSelf(NetStream netStream) { netStream.writeString(TextSerializer.serialize(reason).toString()); - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/EncryptionRequestPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/EncryptionRequestPacket.java index 1313770..dd7b8d8 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/EncryptionRequestPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/EncryptionRequestPacket.java @@ -7,8 +7,8 @@ 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.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import java.security.PublicKey; @@ -21,16 +21,12 @@ public class EncryptionRequestPacket implements SCPacket { private byte[] verifyToken; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { netStream.writeString(serverId); byte[] bytes = publicKey.getEncoded(); netStream.writeVarInt(bytes.length); netStream.writeBytes(bytes); netStream.writeVarInt(verifyToken.length); netStream.writeBytes(verifyToken); - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/JoinGamePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/JoinGamePacket.java index c5023e2..0c029a0 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/JoinGamePacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/JoinGamePacket.java @@ -6,8 +6,8 @@ package mc.core.network.proto_1_12_2.packets; import lombok.NoArgsConstructor; import lombok.Setter; +import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import mc.core.player.PlayerMode; @NoArgsConstructor @@ -20,9 +20,7 @@ public class JoinGamePacket implements SCPacket { private String levelType; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { netStream.writeInt(entityId); netStream.writeUnsignedByte(mode.getId()); netStream.writeInt(dimension); @@ -30,7 +28,5 @@ public class JoinGamePacket implements SCPacket { netStream.writeUnsignedByte(0); // Max Players, unused netStream.writeString(levelType); netStream.writeBoolean(false); // Reduced Debug Info - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/LoginSuccessPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/LoginSuccessPacket.java index 06d5130..1a5e6f0 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/LoginSuccessPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/LoginSuccessPacket.java @@ -7,8 +7,8 @@ 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.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import java.util.UUID; @@ -20,12 +20,8 @@ public class LoginSuccessPacket implements SCPacket { private String playerName; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { netStream.writeString(uuid.toString()); netStream.writeString(playerName); - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PingPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PingPacket.java index 7d709fd..0d03f72 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PingPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PingPacket.java @@ -8,7 +8,6 @@ import lombok.ToString; import mc.core.network.CSPacket; import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; @ToString public class PingPacket implements CSPacket, SCPacket { @@ -20,9 +19,7 @@ public class PingPacket implements CSPacket, SCPacket { } @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); + public void writeSelf(NetStream netStream) { netStream.writeLong(payload); - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerAbilitiesPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerAbilitiesPacket.java index 1a70c8e..232eabf 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerAbilitiesPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerAbilitiesPacket.java @@ -6,8 +6,8 @@ package mc.core.network.proto_1_12_2.packets; import lombok.NoArgsConstructor; import lombok.Setter; +import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; @NoArgsConstructor @Setter @@ -20,9 +20,7 @@ public class PlayerAbilitiesPacket implements SCPacket { private float fieldOfView = flyingSpeed; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { byte flag = 0; if (godMode) flag = (byte)(flag | 0x01); if (flying) flag = (byte)(flag | 0x02); @@ -32,7 +30,5 @@ public class PlayerAbilitiesPacket implements SCPacket { netStream.writeByte(flag); netStream.writeFloat(flyingSpeed); netStream.writeFloat(fieldOfView); - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerPositionAndLookPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerPositionAndLookPacket.java index 584fb1c..3fdb5dd 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerPositionAndLookPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PlayerPositionAndLookPacket.java @@ -7,8 +7,8 @@ package mc.core.network.proto_1_12_2.packets; import lombok.NoArgsConstructor; import lombok.Setter; import mc.core.Location; +import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import mc.core.player.Look; import java.util.Random; @@ -21,9 +21,7 @@ public class PlayerPositionAndLookPacket implements SCPacket { private Look look; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { netStream.writeDouble(location.getX()); netStream.writeDouble(location.getY()); netStream.writeDouble(location.getZ()); @@ -37,7 +35,5 @@ public class PlayerPositionAndLookPacket implements SCPacket { * X_ROT - 0x10 */ netStream.writeVarInt(RANDOM.nextInt()); // Client should confirm this packet with Teleport Confirm containing the same Teleport ID - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PluginMessagePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PluginMessagePacket.java index 0187f03..9af5f84 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PluginMessagePacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/PluginMessagePacket.java @@ -8,7 +8,6 @@ import lombok.*; import mc.core.network.CSPacket; import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; @AllArgsConstructor @NoArgsConstructor @@ -27,12 +26,8 @@ public class PluginMessagePacket implements SCPacket, CSPacket { } @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { netStream.writeString(channelName); netStream.writeBytes(data); - - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/SpawnPositionPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/SpawnPositionPacket.java index d011cad..79274cb 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/SpawnPositionPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/SpawnPositionPacket.java @@ -8,8 +8,8 @@ import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.Setter; import mc.core.Location; +import mc.core.network.NetStream; import mc.core.network.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; import mc.core.network.proto_1_12_2.serializers.LocationSerializer; @AllArgsConstructor @@ -19,9 +19,7 @@ public class SpawnPositionPacket implements SCPacket { private Location location; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); + public void writeSelf(NetStream netStream) { netStream.writeLong(LocationSerializer.serialize(location)); - return netStream.toByteArray(); } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/StatusResponsePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/StatusResponsePacket.java index a649d48..c04596f 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/StatusResponsePacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/StatusResponsePacket.java @@ -7,8 +7,8 @@ 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.SCPacket; -import mc.core.network.proto_1_12_2.ByteArrayOutputNetStream; @Setter @ToString @@ -27,9 +27,7 @@ public class StatusResponsePacket implements SCPacket { private byte[] faviconBase64; @Override - public byte[] toByteArray() { - ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); - + public void writeSelf(NetStream netStream) { JsonObject playersObj = new JsonObject(); playersObj.addProperty("max", maxOnline); playersObj.addProperty("online", online); @@ -49,6 +47,5 @@ public class StatusResponsePacket implements SCPacket { } netStream.writeString(rootObj.toString()); - return netStream.toByteArray(); } } diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PacketEncoder.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PacketEncoder.java index c86c4d7..f9fe817 100644 --- a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PacketEncoder.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PacketEncoder.java @@ -10,6 +10,7 @@ import io.netty.handler.codec.MessageToByteEncoder; import lombok.extern.slf4j.Slf4j; import mc.core.network.NetStream; import mc.core.network.SCPacket; +import mc.core.network.proto_1_12_2.netty.wrappers.ByteArrayOutputNetStream; import mc.core.network.proto_1_12_2.State; import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetStream; @@ -38,8 +39,10 @@ public class PacketEncoder extends MessageToByteEncoder { return; } - byte[] bytes = packet.toByteArray(); - NetStream netStream = new WrapperNetStream(out); + NetStream netStream = new ByteArrayOutputNetStream(); + packet.writeSelf(netStream); + byte[] bytes = ((ByteArrayOutputNetStream) netStream).toByteArray(); + netStream = new WrapperNetStream(out); netStream.writeVarInt(bytes.length + sizeVarInt(id)); netStream.writeVarInt(id); diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/ByteArrayOutputNetStream.java similarity index 96% rename from proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java rename to proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/ByteArrayOutputNetStream.java index 99b2d5a..e3248d6 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/ByteArrayOutputNetStream.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/ByteArrayOutputNetStream.java @@ -2,7 +2,9 @@ * DmitriyMX * 2018-06-10 */ -package mc.core.network.proto_1_12_2; +package mc.core.network.proto_1_12_2.netty.wrappers; + +import mc.core.network.proto_1_12_2.NetStream_p340; import java.io.ByteArrayOutputStream;