diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/net/minecraft/server/RecipesFurnace.java | 2 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java | 23 |
2 files changed, 15 insertions, 10 deletions
diff --git a/src/main/java/net/minecraft/server/RecipesFurnace.java b/src/main/java/net/minecraft/server/RecipesFurnace.java index 44a621db..bf6ddb4d 100644 --- a/src/main/java/net/minecraft/server/RecipesFurnace.java +++ b/src/main/java/net/minecraft/server/RecipesFurnace.java @@ -80,7 +80,7 @@ public class RecipesFurnace { do { if (!iterator.hasNext()) { // CraftBukkit start - if (!vanilla) { + if (!vanilla && recipes.size() != 0) { iterator = this.recipes.entrySet().iterator(); vanilla = true; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java index 568b2d08..53b53b79 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java @@ -10,20 +10,18 @@ import net.minecraft.server.RecipesFurnace; public class RecipeIterator implements Iterator<Recipe> { private final Iterator<IRecipe> recipes; - private final Iterator<net.minecraft.server.ItemStack> smelting; + private final Iterator<net.minecraft.server.ItemStack> smeltingCustom; + private final Iterator<net.minecraft.server.ItemStack> smeltingVanilla; private Iterator<?> removeFrom = null; public RecipeIterator() { this.recipes = CraftingManager.getInstance().getRecipes().iterator(); - this.smelting = RecipesFurnace.getInstance().getRecipes().keySet().iterator(); + this.smeltingCustom = RecipesFurnace.getInstance().customRecipes.keySet().iterator(); + this.smeltingVanilla = RecipesFurnace.getInstance().recipes.keySet().iterator(); } public boolean hasNext() { - if (recipes.hasNext()) { - return true; - } else { - return smelting.hasNext(); - } + return recipes.hasNext() || smeltingCustom.hasNext() || smeltingVanilla.hasNext(); } public Recipe next() { @@ -31,8 +29,15 @@ public class RecipeIterator implements Iterator<Recipe> { removeFrom = recipes; return recipes.next().toBukkitRecipe(); } else { - removeFrom = smelting; - net.minecraft.server.ItemStack item = smelting.next(); + net.minecraft.server.ItemStack item; + if (smeltingCustom.hasNext()) { + removeFrom = smeltingCustom; + item = smeltingCustom.next(); + } else { + removeFrom = smeltingVanilla; + item = smeltingVanilla.next(); + } + CraftItemStack stack = CraftItemStack.asCraftMirror(RecipesFurnace.getInstance().getResult(item)); return new CraftFurnaceRecipe(stack, CraftItemStack.asCraftMirror(item)); |