public function onInteract(PlayerInteractEvent $event) {
$player = $event->getPlayer();
$block = $event->getBlock();
$item = $player->getInventory()->getItemInHand();
$region = $this->setGuard->getRegion($block);
if(!$region) {
return;
} # зачем isset?
if(strtolower($region->getOwner()) === strtolower($player->getName())) {
return;
} # если игрок - владелец региона, скипаем
if(in_array(strtolower($player->getName()), $region->getMemberList())) {
return;
} # если игрок существует в списке участников, скипаем
if($item->getCustomName() == "§r§l§bСупер§8-§bТрапка\n§r§7чтобы активировать нажми по блоку") {
$level = $player->getLevel();
$position = $block->asVector3();
$player->getInventory()->removeItem($item);
$this->createTrapped($level, $position);
$event->setCancelled();
}
$level = $player->getLevel();
$position = $block->asVector3();
$this->getScheduler()->scheduleDelayedTask(new ClosureTask(function(int $currentTick) use($level, $position): void{
$this->removeTrapped($level, $position);
}), 20 * 20);
}
Мне нужно было что бы функцию createTrapped нельзя было в регионах(тапая предметом). А получилось наоборот, функция срабатывает в рг а вне рг блокируется.