Помогите пофиксить код

 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 нельзя было в регионах(тапая предметом). А получилось наоборот, функция срабатывает в рг а вне рг блокируется.

сломана логика, переработай

1 лайк

Всм :confused:

Помогите исправить по братски

код перепиши, он не логичен

ну тут очень хорошо, обращаешься к региону, и зачем-то делаешь ! к этой функции. Хотя эта функция совсем за другое отвечает

Может кто код поправить и скинуть поэалуйста

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

тут что-то на эльфийском

А как переписать😄

убери !

убери !
if - если
$region - возвращает true если на блоке найден регион
ты же останавливаешь функцию когда получаешь ответ false. это лишь догадка но если не поможет то и вправду лучше переделай

я уже ответила

1 лайк

я ему объяснил в чём его ошибка