isActivable = true; $this->maxStackSize = 1; } public function onActivate(Level $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $targetBlock = Block::get($this->meta); if($targetBlock instanceof Air){ if($target instanceof Liquid and $target->getDamage() === 0){ $result = clone $this; $result->setDamage($target->getID()); $player->getServer()->getPluginManager()->callEvent($ev = PlayerBucketFillEvent::createEvent($player, $block, $face, $this, $result)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($target, new Air(), true, true); if($player->isSurvival()){ $player->getInventory()->setItemInHand($ev->getItem(), $player); } return true; }else{ $player->getInventory()->sendContents($player); } } }elseif($targetBlock instanceof Liquid){ $result = clone $this; $result->setDamage(0); $player->getServer()->getPluginManager()->callEvent($ev = PlayerBucketFillEvent::createEvent($player, $block, $face, $this, $result)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($block, $targetBlock, true, true); if($player->isSurvival()){ $player->getInventory()->setItemInHand($ev->getItem(), $player); } return true; }else{ $player->getInventory()->sendContents($player); } } return false; } }