summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/RecipesFurnace.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java23
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));