diff --git a/src/main/java/fr/themode/minestom/entity/Player.java b/src/main/java/fr/themode/minestom/entity/Player.java index 89cd90777..9b13dfe91 100644 --- a/src/main/java/fr/themode/minestom/entity/Player.java +++ b/src/main/java/fr/themode/minestom/entity/Player.java @@ -2,6 +2,7 @@ package fr.themode.minestom.entity; import fr.themode.minestom.Main; import fr.themode.minestom.net.packet.server.play.EntityTeleportPacket; +import fr.themode.minestom.net.packet.server.play.UpdateViewPositionPacket; import fr.themode.minestom.net.player.PlayerConnection; import java.util.UUID; @@ -38,6 +39,7 @@ public class Player extends LivingEntity { if (!onlinePlayer.equals(this)) onlinePlayer.getPlayerConnection().sendPacket(entityTeleportPacket); } + playerConnection.sendPacket(new UpdateViewPositionPacket(Math.floorDiv((int) x, 16), Math.floorDiv((int) z, 16))); } public String getUsername() { diff --git a/src/main/java/fr/themode/minestom/net/packet/server/play/EntityTeleportPacket.java b/src/main/java/fr/themode/minestom/net/packet/server/play/EntityTeleportPacket.java index 2b8be252b..4a170b12a 100644 --- a/src/main/java/fr/themode/minestom/net/packet/server/play/EntityTeleportPacket.java +++ b/src/main/java/fr/themode/minestom/net/packet/server/play/EntityTeleportPacket.java @@ -17,8 +17,8 @@ public class EntityTeleportPacket implements ServerPacket { buffer.putDouble(x); buffer.putDouble(y); buffer.putDouble(y); - buffer.getData().writeByte((int) (this.yaw * 256 / 360)); - buffer.getData().writeByte((int) (this.pitch * 256 / 360)); + buffer.putByte((byte) (this.yaw * 256 / 360)); + buffer.putByte((byte) (this.pitch * 256 / 360)); buffer.putBoolean(onGround); } diff --git a/src/main/java/fr/themode/minestom/net/packet/server/play/UpdateViewPositionPacket.java b/src/main/java/fr/themode/minestom/net/packet/server/play/UpdateViewPositionPacket.java new file mode 100644 index 000000000..693b9e0ca --- /dev/null +++ b/src/main/java/fr/themode/minestom/net/packet/server/play/UpdateViewPositionPacket.java @@ -0,0 +1,27 @@ +package fr.themode.minestom.net.packet.server.play; + +import fr.adamaq01.ozao.net.Buffer; +import fr.themode.minestom.net.packet.server.ServerPacket; +import fr.themode.minestom.utils.Utils; + +public class UpdateViewPositionPacket implements ServerPacket { + + private int chunkX; + private int chunkZ; + + public UpdateViewPositionPacket(int chunkX, int chunkZ) { + this.chunkX = chunkX; + this.chunkZ = chunkZ; + } + + @Override + public void write(Buffer buffer) { + Utils.writeVarInt(buffer, chunkX); + Utils.writeVarInt(buffer, chunkZ); + } + + @Override + public int getId() { + return 0x40; + } +}