mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 01:46:04 +00:00
Make use of World::requestSafeSpawn()
This commit is contained in:
@ -2311,16 +2311,15 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
||||
}
|
||||
$this->respawnLocked = true;
|
||||
|
||||
$this->logger->debug("Waiting for spawn terrain generation for respawn");
|
||||
$this->logger->debug("Waiting for safe respawn position to be located");
|
||||
$spawn = $this->getSpawn();
|
||||
$spawn->getWorld()->orderChunkPopulation($spawn->getFloorX() >> Chunk::COORD_BIT_SIZE, $spawn->getFloorZ() >> Chunk::COORD_BIT_SIZE, null)->onCompletion(
|
||||
function() use ($spawn) : void{
|
||||
$spawn->getWorld()->requestSafeSpawn($spawn)->onCompletion(
|
||||
function(Position $safeSpawn) : void{
|
||||
if(!$this->isConnected()){
|
||||
return;
|
||||
}
|
||||
$this->logger->debug("Spawn terrain generation done, completing respawn");
|
||||
$spawn = $spawn->getWorld()->getSafeSpawn($spawn);
|
||||
$ev = new PlayerRespawnEvent($this, $spawn);
|
||||
$this->logger->debug("Respawn position located, completing respawn");
|
||||
$ev = new PlayerRespawnEvent($this, $safeSpawn);
|
||||
$ev->call();
|
||||
|
||||
$realSpawn = Position::fromObject($ev->getRespawnPosition()->add(0.5, 0, 0.5), $ev->getRespawnPosition()->getWorld());
|
||||
|
Reference in New Issue
Block a user