org.bukkit.Bukkit#recipeIterator ( )源码实例Demo

下面列出了org.bukkit.Bukkit#recipeIterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Transport-Pipes   文件: NMSUtils.java
public static boolean isFurnaceBurnableItem(ItemStack item) {

        Iterator<Recipe> recipeIt = Bukkit.recipeIterator();
        while (recipeIt.hasNext()) {
            Recipe recipe = recipeIt.next();
            if (!(recipe instanceof FurnaceRecipe))
                continue;
            if(!((FurnaceRecipe) recipe).getInputChoice().test(item))
                continue;
            return true;
        }

        return false;
    }
 
源代码2 项目: UhcCore   文件: RandomizedCraftsListener.java
@Override
public void onEnable(){
    Iterator<Recipe> iterator = Bukkit.recipeIterator();
    List<ItemStack> results = new ArrayList<>();
    Set<ShapedRecipe> removeRecipes = new HashSet<>();

    Recipe recipe;
    while (iterator.hasNext()){
        recipe = iterator.next();
        if (!(recipe instanceof ShapedRecipe)){
            continue;
        }

        results.add(recipe.getResult());
        removeRecipes.add((ShapedRecipe) recipe);
    }

    Collections.shuffle(results);
    Iterator<ItemStack> resultIterator = results.iterator();
    Set<ShapedRecipe> randomizedRecipes = new HashSet<>();

    for (ShapedRecipe oldRecipe : removeRecipes){
        ShapedRecipe newRecipe = cloneRecipeWithResult(oldRecipe, resultIterator.next());
        randomizedRecipes.add(newRecipe);

        VersionUtils.getVersionUtils().removeRecipeFor(newRecipe.getResult());
    }

    randomizedRecipes.forEach(r -> Bukkit.getServer().addRecipe(r));
}
 
源代码3 项目: CS-CoreLib   文件: RecipeManager.java
public static void removeRecipe(Material type) {
	Iterator<Recipe> recipes = Bukkit.recipeIterator();
	Recipe recipe;
	while (recipes.hasNext()) {
		recipe = recipes.next();
		if (recipe != null && recipe.getResult().getType() == type) {
			recipes.remove();
		}
	}
}
 
源代码4 项目: CS-CoreLib   文件: RecipeManager.java
public static void removeVanillaRecipe(Material type) {
	Iterator<Recipe> recipes = Bukkit.recipeIterator();
	Recipe recipe;
	while (recipes.hasNext()) {
		recipe = recipes.next();
		if (recipe != null && recipe.getResult().isSimilar(new ItemStack(type))) {
			recipes.remove();
		}
	}
}
 
源代码5 项目: CS-CoreLib   文件: RecipeManager.java
public static void removeRecipe(Material type, short durability) {
	Iterator<Recipe> recipes = Bukkit.recipeIterator();
	Recipe recipe;
	while (recipes.hasNext()) {
		recipe = recipes.next();
		if (recipe != null && recipe.getResult().getType() == type && recipe.getResult().getDurability() == durability) {
			recipes.remove();
		}
	}
}
 
源代码6 项目: CS-CoreLib   文件: RecipeCalculator.java
public static ItemStack getSmeltedOutput(Material type) {
	ItemStack result = null;
	Iterator<Recipe> iter = Bukkit.recipeIterator();
	while (iter.hasNext()) {
	   Recipe recipe = iter.next();
	   if (!(recipe instanceof FurnaceRecipe)) continue;
	   if (((FurnaceRecipe) recipe).getInput().getType() != type) continue;
	   result = recipe.getResult();
	   break;
	}
	
	return result;
}