public function onActivate(Level $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz) { if ($this->meta === AIR) { if ($target instanceof LiquidBlock) { $level->setBlock($target, new AirBlock(), true, false, true); if (($player->gamemode & 0x1) === 0) { $this->meta = $target instanceof WaterBlock ? WATER : LAVA; } return true; } } elseif ($this->meta === WATER) { //Support Make Non-Support Water to Support Water if ($block->getID() === AIR || $block instanceof WaterBlock && ($block->getMetadata() & 0x7) != 0x0) { $water = new WaterBlock(); $level->setBlock($block, $water, true, false, true); $water->place(clone $this, $player, $block, $target, $face, $fx, $fy, $fz); if (($player->gamemode & 0x1) === 0) { $this->meta = 0; } return true; } } elseif ($this->meta === LAVA) { if ($block->getID() === AIR) { $level->setBlock($block, new LavaBlock(), true, false, true); if (($player->gamemode & 0x1) === 0) { $this->meta = 0; } return true; } } return false; }
public function onActivate(Level $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz) { if (($player->gamemode & 0x1) === 0 and $this->useOn($block) and $this->getMetadata() >= $this->getMaxDurability()) { $player->setSlot($player->slot, new Item(AIR, 0, 0), false); } if ($block->getID() === AIR and $target instanceof SolidBlock) { $level->setBlock($block, new FireBlock(), true, false, true); $block->level->scheduleBlockUpdate(new Position($block, 0, 0, $block->level), Utils::getRandomUpdateTicks(), BLOCK_UPDATE_RANDOM); return true; } return false; }