liquid = $liquid; } public function getMaxStackSize() : int{ return 1; } public function getFuelTime() : int{ if($this->liquid instanceof Lava){ return 20000; } return 0; } public function onActivate(Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector) : ItemUseResult{ if(!$blockReplace->canBeReplaced()){ return ItemUseResult::NONE(); } //TODO: move this to generic placement logic $resultBlock = clone $this->liquid; $ev = new PlayerBucketEmptyEvent($player, $blockReplace, $face, $this, VanillaItems::BUCKET()); $ev->call(); if(!$ev->isCancelled()){ $player->getWorld()->setBlock($blockReplace->getPos(), $resultBlock->getFlowingForm()); $player->getWorld()->addSound($blockReplace->getPos()->add(0.5, 0.5, 0.5), $resultBlock->getBucketEmptySound()); if($player->hasFiniteResources()){ $player->getInventory()->setItemInHand($ev->getItem()); } return ItemUseResult::SUCCESS(); } return ItemUseResult::FAIL(); } public function getLiquid() : Liquid{ return $this->liquid; } }