World: do not crash on duplicate tiles loaded from disk

closes #4049
This commit is contained in:
Dylan K. Taylor 2021-10-31 13:58:32 +00:00
parent faad2365e2
commit 1cabe4baf3
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -2485,6 +2485,8 @@ class World implements ChunkManager{
$this->getLogger()->warning("Chunk $chunkX $chunkZ: Deleted unknown tile entity type " . $nbt->getString("id", "<unknown>"));
}elseif(!$this->isChunkLoaded($tile->getPosition()->getFloorX() >> Chunk::COORD_BIT_SIZE, $tile->getPosition()->getFloorZ() >> Chunk::COORD_BIT_SIZE)){
$this->logger->error("Chunk $chunkX $chunkZ: Found tile saved on wrong chunk - unable to fix due to correct chunk not loaded");
}elseif($this->getTile($tilePosition = $tile->getPosition()) !== null){
$this->logger->error("Chunk $chunkX $chunkZ: Cannot add tile at x=$tilePosition->x,y=$tilePosition->y,z=$tilePosition->z: Another tile is already at that position");
}else{
$this->addTile($tile);
}