
org.bukkit.craftbukkit.inventory.RecipeIterator Maven / Gradle / Ivy
package org.bukkit.craftbukkit.inventory;
import net.minecraft.server.CraftingManager;
import net.minecraft.server.IRecipe;
import net.minecraft.server.RecipesFurnace;
import org.bukkit.inventory.Recipe;
import java.util.Iterator;
public class RecipeIterator implements Iterator {
private final Iterator recipes;
private final Iterator smeltingCustom;
private final Iterator smeltingVanilla;
private Iterator> removeFrom = null;
public RecipeIterator() {
this.recipes = CraftingManager.getInstance().getRecipes().iterator();
this.smeltingCustom = RecipesFurnace.getInstance().customRecipes.keySet().iterator();
this.smeltingVanilla = RecipesFurnace.getInstance().recipes.keySet().iterator();
}
public boolean hasNext() {
return recipes.hasNext() || smeltingCustom.hasNext() || smeltingVanilla.hasNext();
}
public Recipe next() {
if (recipes.hasNext()) {
removeFrom = recipes;
return recipes.next().toBukkitRecipe();
} else {
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));
}
}
public void remove() {
if (removeFrom == null) {
throw new IllegalStateException();
}
removeFrom.remove();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy