diff --git a/src/pocketmine/block/BlockFactory.php b/src/pocketmine/block/BlockFactory.php index 9fd5c8625..c793caae6 100644 --- a/src/pocketmine/block/BlockFactory.php +++ b/src/pocketmine/block/BlockFactory.php @@ -467,9 +467,8 @@ class BlockFactory{ if(!$override and self::isRegistered($id, $variant)){ throw new \InvalidArgumentException("Block registration conflicts with an existing block"); } - self::fillStaticArrays(($id << 4) | $variant, $block); //register default state mapped to variant, for blocks which don't use 0 as valid state - for($m = $variant + 1; $m <= ($variant | $stateMask); ++$m){ + for($m = $variant; $m <= ($variant | $stateMask); ++$m){ if(($m & ~$stateMask) !== $variant){ continue; } @@ -486,6 +485,10 @@ class BlockFactory{ self::fillStaticArrays($index, $v); } } + + if(!self::isRegistered($id, $variant)){ + self::fillStaticArrays(($id << 4) | $variant, $block); //register default state mapped to variant, for blocks which don't use 0 as valid state + } } private static function fillStaticArrays(int $index, Block $block) : void{