diff --git a/protocol/src/main/java/mc/protocol/State.java b/protocol/src/main/java/mc/protocol/State.java index 4940521..347c30c 100644 --- a/protocol/src/main/java/mc/protocol/State.java +++ b/protocol/src/main/java/mc/protocol/State.java @@ -48,7 +48,8 @@ public enum State { 0x04, ClientSettingsPacket.class, 0x09, PluginMessagePacket.class, 0x0D, PlayerPositionPacket.class, - 0x0E, CPlayerPositionAndLookPacket.class + 0x0E, CPlayerPositionAndLookPacket.class, + 0x0F, PlayerLookPacket.class ), // client bound Map.of( diff --git a/protocol/src/main/java/mc/protocol/packets/client/PlayerLookPacket.java b/protocol/src/main/java/mc/protocol/packets/client/PlayerLookPacket.java new file mode 100644 index 0000000..0f6ec16 --- /dev/null +++ b/protocol/src/main/java/mc/protocol/packets/client/PlayerLookPacket.java @@ -0,0 +1,42 @@ +package mc.protocol.packets.client; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; +import mc.protocol.io.NetByteBuf; +import mc.protocol.model.Look; +import mc.protocol.packets.ClientSidePacket; + +/** + * Клиент сообщает о повороте головы Игрока. + * + *
Структура пакета
+ *+ * | FIELD | TYPE | NOTES | + * |-----------|---------|---------------------------------------------| + * | Yaw | Float | Абсолютный поворот головы по OX, в градусах | + * | Pitch | Float | Абсолютный поворот головы по OY, в градусах | + * | On Ground | Boolean | true, если Игрок находится на земле | + *+ * + * @see Player Look + */ +@NoArgsConstructor +@Getter +@EqualsAndHashCode +@ToString +public class PlayerLookPacket implements ClientSidePacket { + + private Look look; + private boolean onGround; + + @Override + public void readSelf(NetByteBuf netByteBuf) { + float yaw = netByteBuf.readFloat(); + float pitch = netByteBuf.readFloat(); + this.look = new Look(yaw, pitch); + + this.onGround = netByteBuf.readBoolean(); + } +}