public function place(Item $item, Block $block, Block $target, $face, $fx, $fy, $fz, Player $player = null)
{
$down = $this->getSide(0);
if ($down->getId() === self::SUGARCANE_BLOCK) {
$this->getLevel()->setBlock($block, new Sugarcane(), true);
return true;
} elseif ($down->getId() === self::GRASS or $down->getId() === self::DIRT or $down->getId() === self::SAND) {
$block0 = $down->getSide(2);
$block1 = $down->getSide(3);
$block2 = $down->getSide(4);
$block3 = $down->getSide(5);
if ($block0 instanceof Water or $block1 instanceof Water or $block2 instanceof Water or $block3 instanceof Water) {
$this->getLevel()->setBlock($block, new Sugarcane(), true);
return true;
}
}
return false;
}