mirror of https://github.com/Minestom/Minestom.git
fix: send EntityHeadLookPacket on teleport (#2031)
* fix: send EntityHeadLookPacket on teleport * fix: new teleport test integration --------- Co-authored-by: DeidaraMC <DeidaraMC>
This commit is contained in:
parent
e5cb2f7a1d
commit
705ec5cc07
|
@ -323,7 +323,7 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev
|
||||||
this.position = position;
|
this.position = position;
|
||||||
refreshCoordinate(position);
|
refreshCoordinate(position);
|
||||||
synchronizePosition(true);
|
synchronizePosition(true);
|
||||||
setView(position.yaw(), position.pitch());
|
sendPacketToViewers(new EntityHeadLookPacket(getEntityId(), position.yaw()));
|
||||||
};
|
};
|
||||||
|
|
||||||
if (chunks != null && chunks.length > 0) {
|
if (chunks != null && chunks.length > 0) {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.minestom.server.entity;
|
package net.minestom.server.entity;
|
||||||
|
|
||||||
|
import net.minestom.server.network.packet.server.play.EntityHeadLookPacket;
|
||||||
import net.minestom.testing.Env;
|
import net.minestom.testing.Env;
|
||||||
import net.minestom.testing.EnvTest;
|
import net.minestom.testing.EnvTest;
|
||||||
import net.minestom.server.coordinate.Pos;
|
import net.minestom.server.coordinate.Pos;
|
||||||
|
@ -8,6 +9,8 @@ import net.minestom.server.network.packet.server.play.EntityTeleportPacket;
|
||||||
import net.minestom.server.network.packet.server.play.PlayerPositionAndLookPacket;
|
import net.minestom.server.network.packet.server.play.PlayerPositionAndLookPacket;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
@EnvTest
|
@EnvTest
|
||||||
|
@ -58,10 +61,16 @@ public class EntityTeleportIntegrationTest {
|
||||||
tracker.assertSingle(PlayerPositionAndLookPacket.class,
|
tracker.assertSingle(PlayerPositionAndLookPacket.class,
|
||||||
packet -> assertEquals(teleportPosition, packet.position()));
|
packet -> assertEquals(teleportPosition, packet.position()));
|
||||||
// Verify broadcast packet(s)
|
// Verify broadcast packet(s)
|
||||||
viewerTracker.assertSingle(EntityTeleportPacket.class, packet -> {
|
|
||||||
assertEquals(player.getEntityId(), packet.entityId());
|
viewerTracker.assertCount(2);
|
||||||
assertEquals(teleportPosition, packet.position());
|
List<ServerPacket> packets = viewerTracker.collect();
|
||||||
});
|
var teleportPacket = (EntityTeleportPacket) packets.get(0);
|
||||||
|
assertEquals(player.getEntityId(), teleportPacket.entityId());
|
||||||
|
assertEquals(teleportPosition, teleportPacket.position());
|
||||||
|
|
||||||
|
var headLookPacket = (EntityHeadLookPacket) packets.get(1);
|
||||||
|
assertEquals(player.getEntityId(), headLookPacket.entityId());
|
||||||
|
assertEquals(teleportPosition.yaw(), headLookPacket.yaw());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue