diff --git a/src/server.cpp b/src/server.cpp index 0aba2796c..a3b686c25 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1846,7 +1846,7 @@ void Server::SendPlayerHP(u16 peer_id) { DSTACK(FUNCTION_NAME); PlayerSAO *playersao = getPlayerSAO(peer_id); - // In some rare case, if the player is disconnected + // In some rare case if the player is disconnected // while Lua call l_punch, for example, this can be NULL if (!playersao) return; @@ -2515,9 +2515,11 @@ void Server::sendDetachedInventories(u16 peer_id) void Server::DiePlayer(u16 peer_id) { DSTACK(FUNCTION_NAME); - PlayerSAO *playersao = getPlayerSAO(peer_id); - assert(playersao); + // In some rare cases this can be NULL -- if the player is disconnected + // when a Lua function modifies l_punch, for example + if (!playersao) + return; infostream << "Server::DiePlayer(): Player " << playersao->getPlayer()->getName()