private function tryToCatchBlockOnFire(Block $block, int $bound, int $damage) { $burnAbility = $block->getBurnAbility(); if (mt_rand(0, $bound) < $burnAbility) { if (mt_rand(0, $damage + 10) < 5) { $meta = max(15, $damage + mt_rand(0, 4) / 4); $this->getLevel()->getServer()->getPluginManager()->callEvent($ev = new BlockBurnEvent($block)); if (!$ev->isCancelled()) { $this->getLevel()->setBlock($block, $fire = new Fire($meta), true); $this->getLevel()->scheduleUpdate($block, $fire->getTickRate()); } } else { $this->getLevel()->setBlock($this, new Air(), true); } if ($block instanceof TNT) { $block->prime(); } } }