diff options
Diffstat (limited to 'patches/server/0970-Fix-removing-recipes-from-RecipeIterator.patch')
-rw-r--r-- | patches/server/0970-Fix-removing-recipes-from-RecipeIterator.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/server/0970-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0970-Fix-removing-recipes-from-RecipeIterator.patch new file mode 100644 index 0000000000..a8f124b458 --- /dev/null +++ b/patches/server/0970-Fix-removing-recipes-from-RecipeIterator.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake <[email protected]> +Date: Sat, 15 Jun 2024 18:50:18 +0100 +Subject: [PATCH] Fix removing recipes from RecipeIterator + +== AT == +public net.minecraft.world.item.crafting.RecipeManager byName + +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java +index 4e0f7564f04d5d566660a2623fb1b325e3b4e67c..ca0c82fdd7bd1c2055e84253d90b17857c51b771 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java +@@ -9,6 +9,7 @@ import org.bukkit.inventory.Recipe; + + public class RecipeIterator implements Iterator<Recipe> { + private final Iterator<Map.Entry<RecipeType<?>, RecipeHolder<?>>> recipes; ++ private Recipe currentRecipe; // Paper - fix removing recipes from RecipeIterator + + public RecipeIterator() { + this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.byType.entries().iterator(); +@@ -21,11 +22,17 @@ 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().toBukkitRecipe(); ++ return this.currentRecipe; ++ // Paper end - fix removing recipes from RecipeIterator + } + + @Override + public void remove() { ++ // Paper start - fix removing recipes from RecipeIterator ++ if (true) throw new UnsupportedOperationException(); ++ // Paper end - fix removing recipes from RecipeIterator + this.recipes.remove(); + } + } |