LiteCore Проблема с прогрузкой чанка

$x = 1000;
$z = 1200;
$p->getLevel()->loadChunk($x » 4, $z » 4);
$y = $p->getLevel()->getHighestBlockAt($x, $z);
$p->sendMessage("Чанк с координатами {$x} {$y} {$z} был прогружен");

/

$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} был прогружен");

на обе вариации кода сервер возвращает Y = -1
как исправить?

$x = 1000;
$z = 1200;
$player->teleport(new Position($x, 65, $z));
Server::getInstance()->getScheduler()->scheduleDelayedTask(new CallbackTask(function(int $currentTick) use ($x, $z, $player){
    $player->teleport($x, $player->asPosition()->getLevel()->getHighestBlockAt($x, $z), $z);
}), 10);

да, костыльно, но работает

удалите кто-нибудь колбаску из 1.1 ядер пж, добавьте клозур таск

обработанное исключение при выполнении команды ‘id’ в id: Argument 2 passed to pocketmine\scheduler\CallbackTask::__construct() must be of the type array, int given, called in /root/test/plugins/FrudiID/src/IDPlay/Idfrudi.php on line 45
не работает

исправил

я чутка отредачил, но все равно дает одну и туже ошибку
Could not execute task pocketmine\scheduler\CallbackTask: Argument 1 passed to IDPlay\Idfrudi::IDPlay{closure}() must be of the type int, object given
[21:21:17] [Server thread/CRITICAL]: TypeError: “Argument 1 passed to IDPlay\Idfrudi::IDPlay{closure}() must be of the type int, object given” (EXCEPTION) in “plugins/FrudiID/src/IDPlay/Idfrudi” at line 43

да и работает только телепорт на 65 высоту, дальше в блоки опять тепает

$x = mt_rand(1, 5000);
		$z = mt_rand(1, 5000);
		$sender->teleport(new Position($x, 128, $z, $sender->getLevel()));
		$sender->setImmobile(true);
		Loader::getInstance()->getScheduler()->scheduleDelayedTask(new CallbackTask(function() use ($sender, $x, $z){
			$sender->teleport(new Position($x, $sender->getLevel()->getHighestBlockAt($x, $z) + 2, $z));
			$sender->setImmobile(false);
		}), 20);

вытащил это говно из своего старого проекта

баран, подгрузи чанк и потом тпхай через 0.5с раз на то пошло

2 раза телепортировать с целью подгрузить чанк…

я делал, я грузил и тепал даже через 5 секунд, оно все равно возвращало -1

неправильно ты делал значит

спасибо , но это не пойдет. мне нужны координаты для спавна обьекта, а не для телепортации

я давал на прогруз и 40 секунд. и все равно - 1 возвращало

Ты хочешь высчитать Y так получи Y игрока и * на 4

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

Ну тогда

$y = $player->getLevel()->getHighestBlockAt($x, $z) * (4/2);

гениально

Знаю

это сарказм, не гордись