aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-10-31 19:34:10 -0700
committerJake Potrebic <[email protected]>2024-10-31 19:34:10 -0700
commit5c0930dfadcba923086772e8eeb18d5606d16769 (patch)
treec46566b4ff13ead428fcd13863aef6744a3ed78c
parent52a05907c7a84583c26b8d0b9d5fdf8a5825c8d0 (diff)
downloadPaper-5c0930dfadcba923086772e8eeb18d5606d16769.tar.gz
Paper-5c0930dfadcba923086772e8eeb18d5606d16769.zip
Fix fix recipe iterator patch
-rw-r--r--patches/server/0969-Fix-removing-recipes-from-RecipeIterator.patch16
1 files changed, 7 insertions, 9 deletions
diff --git a/patches/server/0969-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0969-Fix-removing-recipes-from-RecipeIterator.patch
index a8f124b458..f64e093768 100644
--- a/patches/server/0969-Fix-removing-recipes-from-RecipeIterator.patch
+++ b/patches/server/0969-Fix-removing-recipes-from-RecipeIterator.patch
@@ -4,36 +4,34 @@ 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
+public net.minecraft.world.item.crafting.RecipeMap byKey
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
+index 4e0f7564f04d5d566660a2623fb1b325e3b4e67c..c0433e054e64c329dff670c8f7ca21c4a4133c6f 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
++ private RecipeHolder<?> 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> {
+@@ -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().toBukkitRecipe();
-+ return this.currentRecipe;
++ this.currentRecipe = this.recipes.next().getValue();
++ return this.currentRecipe.toBukkitRecipe();
+ // 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
++ MinecraftServer.getServer().getRecipeManager().recipes.byKey.remove(this.currentRecipe.id()); // Paper - fix removing recipes from RecipeIterator
this.recipes.remove();
}
}