From 9c6d4093ae124e5d63d5348b071a9defd76603d0 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 2 Jun 2023 16:16:54 +0100 Subject: [PATCH] Fixed crash when getting an item from a block which came from an item which came from a block had a stroke yet? --- src/block/Block.php | 4 +++- tests/phpunit/block/BlockTest.php | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/block/Block.php b/src/block/Block.php index f838ca450..f2268aed9 100644 --- a/src/block/Block.php +++ b/src/block/Block.php @@ -93,7 +93,9 @@ class Block{ $this->describeBlockOnlyState($calculator); $this->requiredBlockOnlyStateDataBits = $calculator->getBitsUsed(); - $this->defaultState = clone $this; + $defaultState = clone $this; + $this->defaultState = $defaultState; + $defaultState->defaultState = $defaultState; } public function __clone(){ diff --git a/tests/phpunit/block/BlockTest.php b/tests/phpunit/block/BlockTest.php index 711b7e51a..3b84b8021 100644 --- a/tests/phpunit/block/BlockTest.php +++ b/tests/phpunit/block/BlockTest.php @@ -124,4 +124,12 @@ class BlockTest extends TestCase{ $block = $this->blockFactory->fromStateId(Block::EMPTY_STATE_ID); self::assertInstanceOf(Air::class, $block); } + + public function testAsItemFromItem() : void{ + $block = VanillaBlocks::FLOWER_POT(); + $item = $block->asItem(); + $defaultBlock = $item->getBlock(); + $item2 = $defaultBlock->asItem(); + self::assertTrue($item2->equalsExact($item)); + } }