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()); + } + } +}