diff --git a/src/player/Player.php b/src/player/Player.php index 33c61b302..2f743fea3 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -1518,8 +1518,8 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ return true; } - if(!$this->isCreative()){ - $this->blockBreakHandler = SurvivalBlockBreakHandler::createIfNecessary($this, $pos, $target, $face, 16); + if(!$this->isCreative() && !$block->getBreakInfo()->breaksInstantly()){ + $this->blockBreakHandler = new SurvivalBlockBreakHandler($this, $pos, $target, $face, 16); } return true; diff --git a/src/player/SurvivalBlockBreakHandler.php b/src/player/SurvivalBlockBreakHandler.php index d407f02cd..5e27392cf 100644 --- a/src/player/SurvivalBlockBreakHandler.php +++ b/src/player/SurvivalBlockBreakHandler.php @@ -59,7 +59,7 @@ final class SurvivalBlockBreakHandler{ /** @var float */ private $breakProgress = 0; - private function __construct(Player $player, Vector3 $blockPos, Block $block, int $targetedFace, int $maxPlayerDistance, int $fxTickInterval = self::DEFAULT_FX_INTERVAL_TICKS){ + public function __construct(Player $player, Vector3 $blockPos, Block $block, int $targetedFace, int $maxPlayerDistance, int $fxTickInterval = self::DEFAULT_FX_INTERVAL_TICKS){ $this->player = $player; $this->blockPos = $blockPos; $this->block = $block; @@ -76,14 +76,6 @@ final class SurvivalBlockBreakHandler{ } } - public static function createIfNecessary(Player $player, Vector3 $blockPos, Block $block, int $targetedFace, int $maxPlayerDistance, int $fxTickInterval = self::DEFAULT_FX_INTERVAL_TICKS) : ?self{ - $breakInfo = $block->getBreakInfo(); - if(!$breakInfo->breaksInstantly()){ - return new self($player, $blockPos, $block, $targetedFace, $maxPlayerDistance, $fxTickInterval); - } - return null; - } - /** * Returns the calculated break speed as percentage progress per game tick. */