meta = $meta; } public function getName() : string{ return "Nether Wart"; } public function ticksRandomly() : bool{ return true; } public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $facePos, Player $player = null) : bool{ $down = $this->getSide(Vector3::SIDE_DOWN); if($down->getId() === Block::SOUL_SAND){ $this->getLevel()->setBlock($blockReplace, $this, false, true); return true; } return false; } public function onUpdate(int $type){ switch($type){ case Level::BLOCK_UPDATE_RANDOM: if($this->meta < 3 and mt_rand(0, 10) === 0){ //Still growing $block = clone $this; $block->meta++; $this->getLevel()->getServer()->getPluginManager()->callEvent($ev = new BlockGrowEvent($this, $block)); if(!$ev->isCancelled()){ $this->getLevel()->setBlock($this, $ev->getNewState(), false, true); return $type; } } break; case Level::BLOCK_UPDATE_NORMAL: if($this->getSide(Vector3::SIDE_DOWN)->getId() !== Block::SOUL_SAND){ $this->getLevel()->useBreakOn($this); return $type; } break; } return false; } public function getDrops(Item $item) : array{ return [ ItemFactory::get($this->getItemId(), 0, ($this->getDamage() === 3 ? mt_rand(2, 4) : 1)) ]; } }