meta === Block::LAVA or $this->meta === Block::FLOWING_LAVA){ return 20000; } return 0; } public function onActivate(Level $level, Player $player, Block $block, Block $target, int $face, Vector3 $facePos) : bool{ $targetBlock = BlockFactory::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 = new PlayerBucketFillEvent($player, $block, $face, $this, $result)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($target, BlockFactory::get(Block::AIR), true, true); if($player->isSurvival()){ $player->getInventory()->setItemInHand($ev->getItem()); } return true; }else{ $player->getInventory()->sendContents($player); } } }elseif($targetBlock instanceof Liquid){ $result = clone $this; $result->setDamage(0); $player->getServer()->getPluginManager()->callEvent($ev = new PlayerBucketEmptyEvent($player, $block, $face, $this, $result)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($block, $targetBlock, true, true); if($player->isSurvival()){ $player->getInventory()->setItemInHand($ev->getItem()); } return true; }else{ $player->getInventory()->sendContents($player); } } return false; } }