diff --git a/src/data/bedrock/item/ItemDeserializer.php b/src/data/bedrock/item/ItemDeserializer.php index 86e41bcca..fce02de48 100644 --- a/src/data/bedrock/item/ItemDeserializer.php +++ b/src/data/bedrock/item/ItemDeserializer.php @@ -30,6 +30,7 @@ use pocketmine\block\utils\TreeType; use pocketmine\block\VanillaBlocks as Blocks; use pocketmine\data\bedrock\block\BlockStateDeserializeException; use pocketmine\data\bedrock\block\BlockStateDeserializer; +use pocketmine\data\bedrock\block\convert\UnsupportedBlockStateException; use pocketmine\data\bedrock\CompoundTypeIds; use pocketmine\data\bedrock\DyeColorIdMap; use pocketmine\data\bedrock\EntityLegacyIds; @@ -71,6 +72,8 @@ final class ItemDeserializer{ //TODO: this is rough duct tape; we need a better way to deal with this try{ $block = $this->blockStateDeserializer->deserialize($blockData); + }catch(UnsupportedBlockStateException $e){ + throw new UnsupportedItemTypeException($e->getMessage(), 0, $e); }catch(BlockStateDeserializeException $e){ throw new ItemTypeDeserializeException("Failed to deserialize item data: " . $e->getMessage(), 0, $e); } @@ -80,7 +83,7 @@ final class ItemDeserializer{ } $id = $data->getName(); if(!isset($this->deserializers[$id])){ - throw new ItemTypeDeserializeException("No deserializer found for ID $id"); + throw new UnsupportedItemTypeException("No deserializer found for ID $id"); } return ($this->deserializers[$id])($data); diff --git a/src/data/bedrock/item/ItemTypeDeserializeException.php b/src/data/bedrock/item/ItemTypeDeserializeException.php index 21ee91f13..53ae79053 100644 --- a/src/data/bedrock/item/ItemTypeDeserializeException.php +++ b/src/data/bedrock/item/ItemTypeDeserializeException.php @@ -23,6 +23,6 @@ declare(strict_types=1); namespace pocketmine\data\bedrock\item; -final class ItemTypeDeserializeException extends \RuntimeException{ +class ItemTypeDeserializeException extends \RuntimeException{ } diff --git a/src/data/bedrock/item/UnsupportedItemTypeException.php b/src/data/bedrock/item/UnsupportedItemTypeException.php new file mode 100644 index 000000000..7f579fd13 --- /dev/null +++ b/src/data/bedrock/item/UnsupportedItemTypeException.php @@ -0,0 +1,28 @@ +