@EventHandler
 public void onSmelt(FurnaceSmeltEvent event) {
   // this ensures that an STB item smelted in a furnace leaves the
   // correct result in the furnace's output slot
   BaseSTBItem item = SensibleToolbox.getItemRegistry().fromItemStack(event.getSource());
   if (item != null) {
     event.setResult(item.getSmeltingResult());
   }
 }
 private boolean validateSmeltingIngredient(ItemStack stack) {
   BaseSTBItem item = SensibleToolbox.getItemRegistry().fromItemStack(stack);
   if (item != null) {
     return item.getSmeltingResult() != null;
   } else {
     // vanilla item - need to ensure it's actually smeltable (i.e. wasn't added
     // as a furnace recipe because it's the material for some custom STB item)
     return RecipeCalculator.getSmeltedOutput(stack.getType()) != null;
   }
 }