diff options
Diffstat (limited to '')
-rw-r--r-- | src/ClientHandle.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 43a4161e4..1e2f4ffad 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -124,13 +124,14 @@ cClientHandle::~cClientHandle() if (m_Player != NULL) { cWorld * World = m_Player->GetWorld(); - if (!m_Username.empty() && (World != NULL)) - { - // Send the Offline PlayerList packet: - World->BroadcastPlayerListRemovePlayer(*m_Player, this); - } if (World != NULL) { + if (!m_Username.empty()) + { + // Send the Offline PlayerList packet: + World->BroadcastPlayerListRemovePlayer(*m_Player, this); + } + World->RemovePlayer(m_Player, true); // Must be called before cPlayer::Destroy() as otherwise cChunk tries to delete the player, and then we do it again m_Player->Destroy(); } |