From 4bf160d596d8b9d0bfb3904470560b492453e5e4 Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Wed, 11 Apr 2018 08:39:24 +0100 Subject: Update m_LastSentPosition in TeleportToCoords and DoMoveToWorld. (#4211) --- src/Entities/Entity.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/Entities/Entity.cpp') diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp index 707f75cf1..73749d7a3 100644 --- a/src/Entities/Entity.cpp +++ b/src/Entities/Entity.cpp @@ -1541,7 +1541,7 @@ bool cEntity::DoMoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn, Vector3d auto OldChunkCoords = cChunkDef::BlockToChunk(GetPosition()); // Set position to the new position - SetPosition(a_NewPosition); + ResetPosition(a_NewPosition); // Stop all mobs from targeting this entity // Stop this entity from targeting other mobs @@ -1759,6 +1759,16 @@ void cEntity::HandleAir(void) +void cEntity::ResetPosition(Vector3d a_NewPos) +{ + SetPosition(a_NewPos); + m_LastSentPosition = GetPosition(); +} + + + + + void cEntity::OnStartedBurning(void) { // Broadcast the change: @@ -1850,7 +1860,7 @@ void cEntity::TeleportToCoords(double a_PosX, double a_PosY, double a_PosZ) // ask the plugins to allow teleport to the new position. if (!cRoot::Get()->GetPluginManager()->CallHookEntityTeleport(*this, m_LastPosition, Vector3d(a_PosX, a_PosY, a_PosZ))) { - SetPosition(a_PosX, a_PosY, a_PosZ); + ResetPosition({a_PosX, a_PosY, a_PosZ}); m_World->BroadcastTeleportEntity(*this); } } -- cgit v1.2.3