pocketmine\item\GlassBottle::onActivate PHP Метод

onActivate() публичный Метод

public onActivate ( Level $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz )
$level pocketmine\level\Level
$player pocketmine\Player
$block pocketmine\block\Block
$target pocketmine\block\Block
    public function onActivate(Level $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz)
    {
        if ($player === null or $player->isSurvival() !== true) {
            return false;
        }
        if ($target->getId() === Block::STILL_WATER or $target->getId() === Block::WATER) {
            $player->getServer()->getPluginManager()->callEvent($ev = new PlayerGlassBottleEvent($player, $target, $this));
            if ($ev->isCancelled()) {
                return false;
            } else {
                if ($this->count <= 1) {
                    $player->getInventory()->setItemInHand(Item::get(Item::POTION, 0, 1));
                    return true;
                } else {
                    $this->count--;
                    $player->getInventory()->setItemInHand($this);
                }
                if ($player->getInventory()->canAddItem(Item::get(Item::POTION, 0, 1)) === true) {
                    $player->getInventory()->AddItem(Item::get(Item::POTION, 0, 1));
                } else {
                    $motion = $player->getDirectionVector()->multiply(0.4);
                    $position = clone $player->getPosition();
                    $player->getLevel()->dropItem($position->add(0, 0.5, 0), Item::get(Item::POTION, 0, 1), $motion, 40);
                }
                return true;
            }
        }
        return false;
    }