diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-06-10 21:51:22 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-06-10 21:51:22 +0200 |
commit | bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c (patch) | |
tree | 706bb3680c60cbc1f78e31f0ca2ac6d1e9422a6a /src/Protocol/Protocol125.cpp | |
parent | Portal improvements and suggestions (diff) | |
parent | Fixed clang warnings about abs() in Noise.cpp. (diff) | |
download | cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar.gz cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar.bz2 cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar.lz cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar.xz cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.tar.zst cuberite-bfa8aaf41bd2e982e81ca1385efc9ec25ebd246c.zip |
Diffstat (limited to 'src/Protocol/Protocol125.cpp')
-rw-r--r-- | src/Protocol/Protocol125.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Protocol/Protocol125.cpp b/src/Protocol/Protocol125.cpp index 873295f62..5796ba271 100644 --- a/src/Protocol/Protocol125.cpp +++ b/src/Protocol/Protocol125.cpp @@ -133,7 +133,8 @@ typedef unsigned char Byte; cProtocol125::cProtocol125(cClientHandle * a_Client) : super(a_Client), - m_ReceivedData(32 KiB) + m_ReceivedData(32 KiB), + m_LastSentDimension(dimNotSet) { } @@ -591,6 +592,7 @@ void cProtocol125::SendLogin(const cPlayer & a_Player, const cWorld & a_World) WriteByte (0); // Unused WriteByte (60); // Client list width or something Flush(); + m_LastSentDimension = a_World.GetDimension(); } @@ -834,6 +836,11 @@ void cProtocol125::SendRemoveEntityEffect(const cEntity & a_Entity, int a_Effect void cProtocol125::SendRespawn(const cWorld & a_World) { cCSLock Lock(m_CSPacket); + if (m_LastSentDimension == a_World.GetDimension()) + { + // Must not send a respawn for the world with the same dimension, the client goes cuckoo if we do + return; + } cPlayer * Player = m_Client->GetPlayer(); WriteByte (PACKET_RESPAWN); WriteInt ((int)(a_World.GetDimension())); @@ -841,6 +848,8 @@ void cProtocol125::SendRespawn(const cWorld & a_World) WriteChar ((char)Player->GetGameMode()); WriteShort (256); // Current world height WriteString("default"); + Flush(); + m_LastSentDimension = a_World.GetDimension(); } |