Вопрос по координатам

Screenshot_71

Пытаюсь получить блок в не прогруженных чанках через getHighestBlockAt , но возвращает -1 всегда. Почему?
Код:

 $x = mt_rand(-1500, 1500);
$z = mt_rand(-1500, 1500);
$player->getLevel()->loadChunk($x >> 4, $z >> 4);
Server::getInstance()->getScheduler()->scheduleDelayedTask(new CallbackTask([$this, "onTp"], [$x, $z, $player]), 40);
break;
}
}
       public function onTp(int $x, int $z, Player $player) {
$y = $player->getLevel()->getHighestBlockAt($x, $z);
$player->sendMessage("Чанк с координатами {$x} {$y} {$z} был прогружен");
}

Попробуй код из моего ртп

у тебя он тож -1 будет давать

метод один и тот же

Ты сам ответил на свой вопрос

Чанк за доли секунды не прогружается, тебе нужно ждать пока прогрузится а потом получать блок

так для этого я и сделал вызов получения блока через таск… прочитай код

А откуда ты знаешь что за две секунды он прогрузился?

так я тестил и за 20 секунд.

<?php

/*
namespace
*/

class Main extends PluginBase {

	public function onCommand(CommandSender $sender, Command $command, $label, array $args){
		if(!$sender instanceof Player)
			return;
		if($label !== "rtp")
			return;
		$x = mt_rand(-1500, 1500);
		$z = mt_rand(-1500, 1500);
		$chunk = $sender->getLevel()->getChunk($x >> 4, $z >> 4);
		Server::getInstance()->getScheduler()->scheduleDelayedRepeatingTask(new MyTask($x, $z, $sender, $chunk), 20);
	}

}

class MyTask extends Task {

	public function __construct(int $x, int $z, Player $player, Chunk $chunk){
		$this->x = $x;
		$this->z = $z;
		$this->player = $player;
		$this->chunk = $chunk;
	}
	
	public function onRun($currentTick){
		if($this->chunk->isPopulated()){
			// tp
			$y = $this->chunk->getHighestBlockAt($this->x, $this->z);
			$player->sendMessage("Чанк с координатами {$this->x} {$y} {$this->z} был прогружен");
			$this->getHandler()->remove();
		}
	}
}

Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.