From 394be165fdfd5d83d1935ce254d55e5edf462736 Mon Sep 17 00:00:00 2001 From: RK_01 <50594595+RaphiMC@users.noreply.github.com> Date: Fri, 14 Apr 2023 16:38:39 +0200 Subject: [PATCH] Handle ENTITY_TELEPORT's targeting the client player (#3296) --- .../packets/EntityPackets.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/packets/EntityPackets.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/packets/EntityPackets.java index d6465d2d2..b5ece54b3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/packets/EntityPackets.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/packets/EntityPackets.java @@ -106,6 +106,7 @@ public final class EntityPackets extends EntityRewriter { + final int entityId = wrapper.read(Type.VAR_INT); // entity id + final int clientEntityId = wrapper.user().getEntityTracker(Protocol1_19_4To1_19_3.class).clientEntityId(); + if (entityId != clientEntityId) { + wrapper.write(Type.VAR_INT, entityId); // entity id + return; + } + + wrapper.setPacketType(ClientboundPackets1_19_4.PLAYER_POSITION); + wrapper.passthrough(Type.DOUBLE); // x + wrapper.passthrough(Type.DOUBLE); // y + wrapper.passthrough(Type.DOUBLE); // z + wrapper.write(Type.FLOAT, wrapper.read(Type.BYTE) * 360F / 256F); // yaw + wrapper.write(Type.FLOAT, wrapper.read(Type.BYTE) * 360F / 256F); // pitch + wrapper.read(Type.BOOLEAN); // on ground + wrapper.write(Type.BYTE, (byte) 0); // flags + wrapper.write(Type.VAR_INT, -1); // teleport id + }); + } + }); + protocol.registerClientbound(ClientboundPackets1_19_3.ENTITY_ANIMATION, new PacketHandlers() { @Override public void register() {