getSide($side); if($blockSide instanceof Water){ $colliding = $blockSide; break; } } if($colliding !== null){ if($this->decay === 0){ $this->liquidCollide($colliding, BlockFactory::get(Block::OBSIDIAN)); }elseif($this->decay <= 4){ $this->liquidCollide($colliding, BlockFactory::get(Block::COBBLESTONE)); } } } protected function flowIntoBlock(Block $block, int $newFlowDecay, bool $falling) : void{ if($block instanceof Water){ $block->liquidCollide($this, BlockFactory::get(Block::STONE)); }else{ parent::flowIntoBlock($block, $newFlowDecay, $falling); } } public function onEntityInside(Entity $entity) : void{ $entity->fallDistance *= 0.5; $ev = new EntityDamageByBlockEvent($this, $entity, EntityDamageEvent::CAUSE_LAVA, 4); $entity->attack($ev); $ev = new EntityCombustByBlockEvent($this, $entity, 15); $ev->call(); if(!$ev->isCancelled()){ $entity->setOnFire($ev->getDuration()); } $entity->resetFallDistance(); } }