44 $table = json_decode($data,
true);
45 if(!is_array($table)){
53 foreach(Utils::promoteKeys($table) as $name => $entry){
54 if(!is_array($entry) || !is_string($name) || !isset($entry[
"component_based"], $entry[
"runtime_id"], $entry[
"version"]) || !is_bool($entry[
"component_based"]) || !is_int($entry[
"runtime_id"]) || !is_int($entry[
"version"]) || !(is_string($componentNbt = $entry[
"component_nbt"] ??
null) || $componentNbt ===
null)){
57 $params[] =
new ItemTypeEntry($name, $entry[
"runtime_id"], $entry[
"component_based"], $entry[
"version"], $componentNbt ===
null ? $emptyNBT :
new CacheableNbt($nbtSerializer->read(ErrorToExceptionHandler::trapAndRemoveFalse(fn() => base64_decode($componentNbt,
true)))->mustGetCompoundTag()));