Archived
0

PlayerPositionPacket

This commit is contained in:
2021-05-03 00:16:27 +03:00
parent 1a4600bdc9
commit 531b0b97c1
3 changed files with 51 additions and 2 deletions

View File

@@ -47,6 +47,7 @@ public enum State {
0x00, TeleportConfirmPacket.class, 0x00, TeleportConfirmPacket.class,
0x04, ClientSettingsPacket.class, 0x04, ClientSettingsPacket.class,
0x09, PluginMessagePacket.class, 0x09, PluginMessagePacket.class,
0x0D, PlayerPositionPacket.class,
0x0E, CPlayerPositionAndLookPacket.class 0x0E, CPlayerPositionAndLookPacket.class
), ),
// client bound // client bound

View File

@@ -10,7 +10,7 @@ import mc.protocol.model.Look;
import mc.protocol.packets.ClientSidePacket; import mc.protocol.packets.ClientSidePacket;
/** /**
* Клиент сообщает о движении Игрока. * Клиент сообщает о движении и повороте головы Игрока.
* *
* <p>Структура пакета</p> * <p>Структура пакета</p>
* <pre> * <pre>
@@ -35,7 +35,6 @@ public class CPlayerPositionAndLookPacket implements ClientSidePacket {
private Location position; private Location position;
private Look look; private Look look;
@SuppressWarnings("java:S116")
private boolean onGround; private boolean onGround;
@Override @Override

View File

@@ -0,0 +1,49 @@
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.Location;
import mc.protocol.packets.ClientSidePacket;
/**
* Клиент сообщает о движении Игрока.
*
* <p>Структура пакета</p>
* <pre>
* | FIELD | TYPE | NOTES |
* |-----------|---------|-------------------------------------|
* | X | Double | Абсолютная позиция по X |
* | Feet Y | Double | Абсолютная позиция ног по Y. |
* | | | Голова находиться выше на 1.62f |
* | Z | Double | Абсолютная позиция по Z |
* | On Ground | Boolean | true, если Игрок находится на земле |
* </pre>
*
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=14204#Player_Position">Player Position</a>
*/
@NoArgsConstructor
@Getter
@EqualsAndHashCode
@ToString
public class PlayerPositionPacket implements ClientSidePacket {
private Location position;
private boolean onGround;
@Override
public void readSelf(NetByteBuf netByteBuf) {
double x = netByteBuf.readDouble();
double y = netByteBuf.readDouble();
double z = netByteBuf.readDouble();
this.position = new Location(x, y, z);
this.onGround = netByteBuf.readBoolean();
}
public double getYPositionHead() {
return this.position.getY() + 1.62f;
}
}