diff options
-rw-r--r-- | src/serverenvironment.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index 41cd63684..01dc3ff10 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -2086,7 +2086,9 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) if(block) { - if (block->m_static_objects.m_stored.size() >= g_settings->getU16("max_objects_per_block")) { + // Force delete object if mapblock is full, but ignore players + if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER && + block->m_static_objects.m_stored.size() >= g_settings->getU16("max_objects_per_block")) { warningstream << "ServerEnv: Trying to store id = " << obj->getId() << " statically but block " << PP(blockpos) << " already contains " @@ -2146,12 +2148,6 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) continue; } - // If it's a forced delete, there are too many objects in mapblock - // Ignore players, they should not be removed on force delete - if (force_delete && obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - continue; - } - verbosestream<<"ServerEnvironment::deactivateFarObjects(): " <<"object id="<<id<<" is not known by clients" <<"; deleting"<<std::endl; |