78 if(($blockData = $data->getBlock()) !== null){
81 $block = $this->blockStateDeserializer->deserialize($blockData);
89 return RuntimeBlockStateRegistry::getInstance()->fromStateId($block)->asItem();
91 $id = $data->getName();
92 if(!isset($this->deserializers[$id])){
96 return ($this->deserializers[$id])($data);
103 $itemStack = $this->deserializeType($data->getTypeData());
105 $itemStack->
setCount($data->getCount());
106 if(($tagTag = $data->getTypeData()->getTag()) !==
null){
108 $itemStack->setNamedTag(clone $tagTag);
110 throw new ItemTypeDeserializeException(
"Invalid item saved NBT: " . $e->getMessage(), 0, $e);
115 if($itemStack instanceof
Durable && $itemStack->getDamage() === 0 && ($damage = $data->getTypeData()->getMeta()) > 0){
116 $itemStack->setDamage(min($damage, $itemStack->getMaxDurability()));