From dacefb5f66e9ca280a1cd616a9582ab9e62b6b63 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 17 Jun 2018 15:04:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B5=D1=89=D0=B5=20=D0=BF=D1=8F=D1=82=D0=BE=D0=BA=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2,=20=D0=BD=D0=BE=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mc/core/network/proto_1_12_2/State.java | 5 ++++ .../proto_1_12_2/packets/AnimationPacket.java | 17 +++++++++++ .../packets/ChatMessagePacket.java | 17 +++++++++++ .../packets/HeldItemChangePacket.java | 17 +++++++++++ .../packets/PlayerPositionAndLookPacket.java | 23 ++++++++++++++- .../packets/TabCompletePacket.java | 28 +++++++++++++++++++ 6 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/AnimationPacket.java create mode 100644 proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/ChatMessagePacket.java create mode 100644 proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/HeldItemChangePacket.java create mode 100644 proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/TabCompletePacket.java diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/State.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/State.java index 8699e10..336f985 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/State.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/State.java @@ -45,8 +45,13 @@ public enum State { PLAY(3, ImmutableBiMap.>builder() .put(0x00, TeleportConfirmPacket.class) + .put(0x01, TabCompletePacket.class) + .put(0x02, ChatMessagePacket.class) .put(0x04, ClientSettingsPacket.class) .put(0x09, PluginMessagePacket.class) + .put(0x0E, PlayerPositionAndLookPacket.class) + .put(0x1A, HeldItemChangePacket.class) + .put(0x1D, AnimationPacket.class) .build(), ImmutableBiMap., Integer>builder() .put(PluginMessagePacket.class, 0x18) diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/AnimationPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/AnimationPacket.java new file mode 100644 index 0000000..b333bc5 --- /dev/null +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/AnimationPacket.java @@ -0,0 +1,17 @@ +/* + * DmitriyMX + * 2018-06-17 + */ +package mc.core.network.proto_1_12_2.packets; + +import mc.core.network.CSPacket; +import mc.core.network.NetStream; + +public class AnimationPacket implements CSPacket { + private int handAnimation; + + @Override + public void readSelf(NetStream netStream) { + this.handAnimation = netStream.readVarInt(); + } +} diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/ChatMessagePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/ChatMessagePacket.java new file mode 100644 index 0000000..9532391 --- /dev/null +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/ChatMessagePacket.java @@ -0,0 +1,17 @@ +/* + * DmitriyMX + * 2018-06-17 + */ +package mc.core.network.proto_1_12_2.packets; + +import mc.core.network.CSPacket; +import mc.core.network.NetStream; + +public class ChatMessagePacket implements CSPacket { + private String message; + + @Override + public void readSelf(NetStream netStream) { + this.message = netStream.readString(); + } +} diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/HeldItemChangePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/HeldItemChangePacket.java new file mode 100644 index 0000000..3ae989a --- /dev/null +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/HeldItemChangePacket.java @@ -0,0 +1,17 @@ +/* + * DmitriyMX + * 2018-06-17 + */ +package mc.core.network.proto_1_12_2.packets; + +import mc.core.network.CSPacket; +import mc.core.network.NetStream; + +public class HeldItemChangePacket implements CSPacket { + private int slot; + + @Override + public void readSelf(NetStream netStream) { + this.slot = netStream.readShort(); + } +} 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 3fdb5dd..6eb30b6 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 @@ -4,9 +4,11 @@ */ package mc.core.network.proto_1_12_2.packets; +import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import mc.core.Location; +import mc.core.network.CSPacket; import mc.core.network.NetStream; import mc.core.network.SCPacket; import mc.core.player.Look; @@ -14,11 +16,13 @@ import mc.core.player.Look; import java.util.Random; @NoArgsConstructor +@Getter @Setter -public class PlayerPositionAndLookPacket implements SCPacket { +public class PlayerPositionAndLookPacket implements SCPacket, CSPacket { private static Random RANDOM = new Random(); private Location location; private Look look; + private boolean onGround = false; @Override public void writeSelf(NetStream netStream) { @@ -34,6 +38,23 @@ public class PlayerPositionAndLookPacket implements SCPacket { * Y_ROT - 0x08 * X_ROT - 0x10 */ + //FIXME teleport id netStream.writeVarInt(RANDOM.nextInt()); // Client should confirm this packet with Teleport Confirm containing the same Teleport ID } + + @Override + public void readSelf(NetStream netStream) { + this.location = new Location( + netStream.readDouble(), + netStream.readDouble(), + netStream.readDouble() + ); + + this.look = new Look( + netStream.readFloat(), + netStream.readFloat() + ); + + this.onGround = netStream.readBoolean(); + } } diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/TabCompletePacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/TabCompletePacket.java new file mode 100644 index 0000000..f3a202e --- /dev/null +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/TabCompletePacket.java @@ -0,0 +1,28 @@ +/* + * DmitriyMX + * 2018-06-17 + */ +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.proto_1_12_2.serializers.LocationSerializer; + +public class TabCompletePacket implements CSPacket { + private String text; + private boolean assumeCommand; + private boolean hasPosition; + private Location location; + + @Override + public void readSelf(NetStream netStream) { + this.text = netStream.readString(); + this.assumeCommand = netStream.readBoolean(); + this.hasPosition = netStream.readBoolean(); + + if (this.hasPosition) { + this.location = LocationSerializer.deserialize(netStream.readLong()); + } + } +}