diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index c8a14d98f..fe0653388 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -1102,8 +1102,9 @@ class Server{ $this->getLogger()->notice($this->getLanguage()->translateString("pocketmine.level.backgroundGeneration", [$name])); - $centerX = $level->getSpawnLocation()->getX() >> 4; - $centerZ = $level->getSpawnLocation()->getZ() >> 4; + $spawnLocation = $level->getSpawnLocation(); + $centerX = $spawnLocation->x >> 4; + $centerZ = $spawnLocation->z >> 4; $order = []; diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 14ef602a7..1d082a569 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -1711,7 +1711,9 @@ class Level implements ChunkManager, Metadatable{ public function checkSpawnProtection(Player $player, Vector3 $vector) : bool{ if(!$player->hasPermission("pocketmine.spawnprotect.bypass") and ($distance = $this->server->getSpawnRadius()) > -1){ $t = new Vector2($vector->x, $vector->z); - $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z); + + $spawnLocation = $this->getSpawnLocation(); + $s = new Vector2($spawnLocation->x, $spawnLocation->z); if(count($this->server->getOps()->getAll()) > 0 and $t->distance($s) <= $distance){ return true; } @@ -2811,8 +2813,9 @@ class Level implements ChunkManager, Metadatable{ * @return bool */ public function isSpawnChunk(int $X, int $Z) : bool{ - $spawnX = $this->provider->getSpawn()->getX() >> 4; - $spawnZ = $this->provider->getSpawn()->getZ() >> 4; + $spawn = $this->provider->getSpawn(); + $spawnX = $spawn->x >> 4; + $spawnZ = $spawn->z >> 4; return abs($X - $spawnX) <= 1 and abs($Z - $spawnZ) <= 1; }