diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-08-20 22:25:05 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-08-20 22:25:05 +0200 |
commit | f7774ec33638bfc30cc29c1f70850a6072a31c93 (patch) | |
tree | c2c2896b87de9241b1555e4e2580aa6b3f401870 /src/Entities/Player.cpp | |
parent | Revert "Removes the fire if the block under the fire was broken." (diff) | |
parent | Merge pull request #1335 from mc-server/CodeFixes (diff) | |
download | cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar.gz cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar.bz2 cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar.lz cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar.xz cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.tar.zst cuberite-f7774ec33638bfc30cc29c1f70850a6072a31c93.zip |
Diffstat (limited to 'src/Entities/Player.cpp')
-rw-r--r-- | src/Entities/Player.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index 4398a5bf3..32290885d 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -225,16 +225,24 @@ void cPlayer::Tick(float a_Dt, cChunk & a_Chunk) SendExperience(); } + bool CanMove = true; if (!GetPosition().EqualsEps(m_LastPos, 0.01)) // Non negligible change in position from last tick? { // Apply food exhaustion from movement: ApplyFoodExhaustionFromMovement(); - cRoot::Get()->GetPluginManager()->CallHookPlayerMoving(*this); + if (cRoot::Get()->GetPluginManager()->CallHookPlayerMoving(*this, m_LastPos, GetPosition())) + { + CanMove = false; + TeleportToCoords(m_LastPos.x, m_LastPos.y, m_LastPos.z); + } m_ClientHandle->StreamChunks(); } - BroadcastMovementUpdate(m_ClientHandle); + if (CanMove) + { + BroadcastMovementUpdate(m_ClientHandle); + } if (m_Health > 0) // make sure player is alive { @@ -884,7 +892,7 @@ void cPlayer::KilledBy(TakeDamageInfo & a_TDI) Pickups.Add(cItem(E_ITEM_RED_APPLE)); } - m_Stats.AddValue(statItemsDropped, Pickups.Size()); + m_Stats.AddValue(statItemsDropped, (StatValue)Pickups.Size()); m_World->SpawnItemPickups(Pickups, GetPosX(), GetPosY(), GetPosZ(), 10); SaveToDisk(); // Save it, yeah the world is a tough place ! @@ -1610,7 +1618,7 @@ void cPlayer::TossPickup(const cItem & a_Item) void cPlayer::TossItems(const cItems & a_Items) { - m_Stats.AddValue(statItemsDropped, a_Items.Size()); + m_Stats.AddValue(statItemsDropped, (StatValue)a_Items.Size()); double vX = 0, vY = 0, vZ = 0; EulerToVector(-GetYaw(), GetPitch(), vZ, vX, vY); @@ -1834,6 +1842,7 @@ bool cPlayer::LoadFromFile(const AString & a_FileName, cWorldPtr & a_World) bool cPlayer::SaveToDisk() { + cFile::CreateFolder(FILE_IO_PREFIX + AString("players/")); // Create the "players" folder, if it doesn't exist yet (#1268) cFile::CreateFolder(FILE_IO_PREFIX + AString("players/") + m_UUID.substr(0, 2)); // create the JSON data |