Buggy code:
public abstract class Recipes { private static boolean initDone = false ; public static void init ( ) { } private static void initPureVanillaCrusherRecipes ( ) { } private static void initVanillaRecipes ( ) { } private static void initMetalRecipes ( ) { List < MetalMaterial > exceptions = Arrays . asList ( vanilla_iron , vanilla_gold ) ; GameRegistry . addRecipe ( new ShapedOreRecipe ( new net . minecraft . item . ItemStack ( Items . iron_crackhammer ) , "<seq2seq4repair_space>x<seq2seq4repair_space>" , "<seq2seq4repair_space>//<seq2seq4repair_space>" , "<seq2seq4repair_space>//<seq2seq4repair_space>" , 'x' , "blockIron" , '//' , "stickWood" ) ) ; for ( MetalMaterial metal : Materials . getAllMetals ( ) ) { if ( exceptions . contains ( metal ) ) continue ; String baseName = ( metal . getName ( ) ) + "_" ; Item axe = cyano . basemetals . init . Items . getItemByName ( ( baseName + "axe" ) ) ; Item blend = cyano . basemetals . init . Items . getItemByName ( ( baseName + "blend" ) ) ; Item boots = cyano . basemetals . init . Items . getItemByName ( ( baseName + "boots" ) ) ; Item chestplate = cyano . basemetals . init . Items . getItemByName ( ( baseName + "chestplate" ) ) ; Item crackhammer = cyano . basemetals . init . Items . getItemByName ( ( baseName + "crackhammer" ) ) ; Item door = cyano . basemetals . init . Items . getItemByName ( ( baseName + "door_item" ) ) ; Item helmet = cyano . basemetals . init . Items . getItemByName ( ( baseName + "helmet" ) ) ; Item hoe = cyano . basemetals . init . Items . getItemByName ( ( baseName + "hoe" ) ) ; Item ingot = cyano . basemetals . init . Items . getItemByName ( ( baseName + "ingot" ) ) ; Item leggings = cyano . basemetals . init . Items . getItemByName ( ( baseName + "leggings" ) ) ; Item nugget = cyano . basemetals . init . Items . getItemByName ( ( baseName + "nugget" ) ) ; Item pickaxe = cyano . basemetals . init . Items . getItemByName ( ( baseName + "pickaxe" ) ) ; Item powder = cyano . basemetals . init . Items . getItemByName ( ( baseName + "powder" ) ) ; Item shovel = cyano . basemetals . init . Items . getItemByName ( ( baseName + "shovel" ) ) ; Item sword = cyano . basemetals . init . Items . getItemByName ( ( baseName + "sword" ) ) ; Block bars = cyano . basemetals . init . Blocks . getBlockByName ( ( baseName + "bars" ) ) ; Block block = cyano . basemetals . init . Blocks . getBlockByName ( ( baseName + "block" ) ) ; Block ore = cyano . basemetals . init . Blocks . getBlockByName ( ( baseName + "ore" ) ) ; Block trapdoor = cyano . basemetals . init . Blocks . getBlockByName ( ( baseName + "trapdoor" ) ) ; if ( ( ore != null ) && ( powder != null ) ) { CrusherRecipeRegistry . addNewCrusherRecipe ( ore , new net . minecraft . item . ItemStack ( powder , 2 ) ) ; } if ( ( ore != null ) && ( ingot != null ) ) { <START_BUG> GameRegistry . addSmelting ( ore , new net . minecraft . item . ItemStack ( ingot , 1 ) , 0.75F ) ; <END_BUG> } if ( ( ingot != null ) && ( powder != null ) ) { CrusherRecipeRegistry . addNewCrusherRecipe ( ingot , new net . minecraft . item . ItemStack ( powder , 1 ) ) ; GameRegistry . addSmelting ( powder , new net . minecraft . item . ItemStack ( ingot , 1 ) , 0 ) ; } if ( ( ingot != null ) && ( blend != null ) ) { GameRegistry . addSmelting ( blend , new net . minecraft . item . ItemStack ( ingot , 1 ) , 0 ) ; } if ( ( ingot != null ) && ( nugget != null ) ) { GameRegistry . addRecipe ( new ShapelessOreRecipe ( new net . minecraft . item . ItemStack ( nugget , 9 ) , new net . minecraft . item . ItemStack ( ingot ) ) ) ; GameRegistry . addRecipe ( new ShapedOreRecipe ( new net . minecraft . item . ItemStack ( ingot ) , "xxx" , "xxx" , "xxx" , 'x' , nugget ) ) ; } if ( ( ingot != null ) && ( block != null ) ) { GameRegistry . addRecipe ( new ShapelessOreRecipe ( new net . minecraft . item . ItemStack ( ingot , 9 ) , new net . minecraft . item . ItemStack ( block ) ) ) ; GameRegistry . addRecipe ( new ShapedOreRecipe ( new net . minecraft . item . ItemStack ( block ) , "xxx" , "xxx" , "xxx" , 'x' , ingot ) ) ; } if ( ( block != null ) && ( powder != null ) ) { CrusherRecipeRegistry . addNewCrusherRecipe ( block , new net . minecraft . item . ItemStack ( powder , 9 ) ) ; } if ( ( ingot != null ) && ( bars != null ) ) { GameRegistry . addRecipe ( new ShapedOreRecipe ( new net . minecraft . item . ItemStack ( bars , 16 ) , "xxx" , "xxx" , 'x' , ingot ) ) ; } if ( ( ingot != null ) && ( door != null ) ) { GameRegistry . addRecipe ( new ShapedOreRecipe ( new net . minecraft . item . ItemStack ( door , 3 ) , "xx<seq2seq4repair_space>" , "xx<seq2seq4repair_space>" , "xx<seq2seq4repair_space>" , 'x' , ingot ) ) ; }

Fix:
GameRegistry . addSmelting ( ore , new net . minecraft . item . ItemStack ( ingot , 1 ) , metal . getOreSmeltXP ( ) ) ;