From 91c2e0f6917f2be4df69750249985bc574deca3e Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 13 Jul 2016 19:24:16 -0700 Subject: [PATCH] Fix #358 Protect against crash from broken smelting recipes --- gradle.properties | 2 +- .../vanilla/furnace/SmeltingRecipe.java | 25 +++++++------------ .../vanilla/furnace/SmeltingRecipeMaker.java | 4 +-- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2356bbb6e..30defa075 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,4 @@ curse_project_id=238222 version_major=3 version_minor=7 -version_patch=5 +version_patch=6 diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipe.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipe.java index 2b94f86bd..4bd5dcf75 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipe.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipe.java @@ -1,17 +1,16 @@ package mezz.jei.plugins.vanilla.furnace; import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.awt.Color; +import java.awt.*; import java.util.Collections; import java.util.List; +import mezz.jei.plugins.vanilla.VanillaRecipeWrapper; +import mezz.jei.util.Translator; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.item.ItemStack; - -import mezz.jei.plugins.vanilla.VanillaRecipeWrapper; -import mezz.jei.util.Translator; +import net.minecraft.item.crafting.FurnaceRecipes; public class SmeltingRecipe extends VanillaRecipeWrapper { @Nonnull @@ -19,18 +18,9 @@ public class SmeltingRecipe extends VanillaRecipeWrapper { @Nonnull private final List outputs; - @Nullable - private final String experienceString; - - public SmeltingRecipe(@Nonnull List input, @Nonnull ItemStack output, float experience) { + public SmeltingRecipe(@Nonnull List input, @Nonnull ItemStack output) { this.input = Collections.singletonList(input); this.outputs = Collections.singletonList(output); - - if (experience > 0.0) { - experienceString = Translator.translateToLocalFormatted("gui.jei.category.smelting.experience", experience); - } else { - experienceString = null; - } } @Nonnull @@ -45,7 +35,10 @@ public List getOutputs() { @Override public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) { - if (experienceString != null) { + FurnaceRecipes furnaceRecipes = FurnaceRecipes.instance(); + float experience = furnaceRecipes.getSmeltingExperience(outputs.get(0)); + if (experience > 0) { + String experienceString = Translator.translateToLocalFormatted("gui.jei.category.smelting.experience", experience); FontRenderer fontRendererObj = minecraft.fontRendererObj; int stringWidth = fontRendererObj.getStringWidth(experienceString); fontRendererObj.drawString(experienceString, recipeWidth - stringWidth, 0, Color.gray.getRGB()); diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipeMaker.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipeMaker.java index b046b90c5..60bcb9121 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipeMaker.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/SmeltingRecipeMaker.java @@ -25,10 +25,8 @@ public static List getFurnaceRecipes(IJeiHelpers helpers) { ItemStack input = itemStackItemStackEntry.getKey(); ItemStack output = itemStackItemStackEntry.getValue(); - float experience = furnaceRecipes.getSmeltingExperience(output); - List inputs = stackHelper.getSubtypes(input); - SmeltingRecipe recipe = new SmeltingRecipe(inputs, output, experience); + SmeltingRecipe recipe = new SmeltingRecipe(inputs, output); recipes.add(recipe); }