Fix removing recipes from RecipeIterator
== AT == public net.minecraft.world.item.crafting.RecipeMap byKey
This commit is contained in:
@@ -9,6 +9,7 @@ import org.bukkit.inventory.Recipe;
|
|||||||
|
|
||||||
public class RecipeIterator implements Iterator<Recipe> {
|
public class RecipeIterator implements Iterator<Recipe> {
|
||||||
private final Iterator<Map.Entry<RecipeType<?>, RecipeHolder<?>>> recipes;
|
private final Iterator<Map.Entry<RecipeType<?>, RecipeHolder<?>>> recipes;
|
||||||
|
private RecipeHolder<?> currentRecipe; // Paper - fix removing recipes from RecipeIterator
|
||||||
|
|
||||||
public RecipeIterator() {
|
public RecipeIterator() {
|
||||||
this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.byType.entries().iterator();
|
this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.byType.entries().iterator();
|
||||||
@@ -21,11 +22,15 @@ public class RecipeIterator implements Iterator<Recipe> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Recipe next() {
|
public Recipe next() {
|
||||||
return this.recipes.next().getValue().toBukkitRecipe();
|
// Paper start - fix removing recipes from RecipeIterator
|
||||||
|
this.currentRecipe = this.recipes.next().getValue();
|
||||||
|
return this.currentRecipe.toBukkitRecipe();
|
||||||
|
// Paper end - fix removing recipes from RecipeIterator
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove() {
|
public void remove() {
|
||||||
|
MinecraftServer.getServer().getRecipeManager().recipes.byKey.remove(this.currentRecipe.id()); // Paper - fix removing recipes from RecipeIterator
|
||||||
this.recipes.remove();
|
this.recipes.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user