All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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