registerShapelessRecipe(new ShapelessRecipe( array_map($itemDeserializerFunc, $recipe["input"]), array_map($itemDeserializerFunc, $recipe["output"]) )); break; case "shaped": if($recipe["block"] !== "crafting_table"){ //TODO: filter others out for now to avoid breaking economics break; } $result->registerShapedRecipe(new ShapedRecipe( $recipe["shape"], array_map($itemDeserializerFunc, $recipe["input"]), array_map($itemDeserializerFunc, $recipe["output"]) )); break; case "smelting": if($recipe["block"] !== "furnace"){ //TODO: filter others out for now to avoid breaking economics break; } $result->getFurnaceRecipeManager()->register(new FurnaceRecipe( Item::jsonDeserialize($recipe["output"]), Item::jsonDeserialize($recipe["input"])) ); break; default: break; } } return $result; } }