13
0
geforkt von Mirrors/Paper

Fix removing recipes from RecipeIterator

== AT ==
public net.minecraft.world.item.crafting.RecipeMap byKey
Dieser Commit ist enthalten in:
Jake 2024-06-15 18:50:18 +01:00
Ursprung 826f299f4c
Commit d7b5168a81

Datei anzeigen

@ -9,6 +9,7 @@ import org.bukkit.inventory.Recipe;
public class RecipeIterator implements Iterator<Recipe> {
private final Iterator<Map.Entry<RecipeType<?>, RecipeHolder<?>>> recipes;
private RecipeHolder<?> currentRecipe; // Paper - fix removing recipes from RecipeIterator
public RecipeIterator() {
this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.byType.entries().iterator();
@ -21,11 +22,15 @@ public class RecipeIterator implements Iterator<Recipe> {
@Override
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
public void remove() {
MinecraftServer.getServer().getRecipeManager().recipes.byKey.remove(this.currentRecipe.id()); // Paper - fix removing recipes from RecipeIterator
this.recipes.remove();
}
}