diff --git a/src/network/mcpe/convert/RuntimeBlockMapping.php b/src/network/mcpe/convert/RuntimeBlockMapping.php index e0acc2430..c5945e28d 100644 --- a/src/network/mcpe/convert/RuntimeBlockMapping.php +++ b/src/network/mcpe/convert/RuntimeBlockMapping.php @@ -66,8 +66,11 @@ final class RuntimeBlockMapping{ private BlockStateDictionary $blockStateDictionary, private BlockStateSerializer $blockStateSerializer ){ - $this->fallbackStateData = new BlockStateData(BlockTypeNames::INFO_UPDATE, [], BlockStateData::CURRENT_VERSION); - $this->fallbackStateId = $this->blockStateDictionary->lookupStateIdFromData($this->fallbackStateData) ?? throw new AssumptionFailedError(BlockTypeNames::INFO_UPDATE . " should always exist"); + $this->fallbackStateId = $this->blockStateDictionary->lookupStateIdFromData( + new BlockStateData(BlockTypeNames::INFO_UPDATE, [], BlockStateData::CURRENT_VERSION) + ) ?? throw new AssumptionFailedError(BlockTypeNames::INFO_UPDATE . " should always exist"); + //lookup the state data from the dictionary to avoid keeping two copies of the same data around + $this->fallbackStateData = $this->blockStateDictionary->getDataFromStateId($this->fallbackStateId) ?? throw new AssumptionFailedError("We just looked up this state data, so it must exist"); } public function toRuntimeId(int $internalStateId) : int{