SPIGOT-6851: removeRecipe not unregistering recipe ID

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot 2021-12-13 11:25:22 +11:00
parent 667cb32115
commit ef17571a38
2 changed files with 10 additions and 8 deletions

View file

@ -116,7 +116,7 @@
});
MinecraftKey minecraftkey = irecipe.getId();
IRecipe<?> irecipe1 = (IRecipe) map1.put(minecraftkey, irecipe);
@@ -160,6 +186,18 @@
@@ -160,6 +186,26 @@
}
});
this.recipes = ImmutableMap.copyOf(map);
@ -125,6 +125,14 @@
+ }
+
+ // CraftBukkit start
+ public boolean removeRecipe(MinecraftKey mcKey) {
+ for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> recipes : recipes.values()) {
+ recipes.remove(mcKey);
+ }
+
+ return byName.remove(mcKey) != null;
+ }
+
+ public void clearRecipes() {
+ this.recipes = Maps.newHashMap();
+

View file

@ -1364,13 +1364,7 @@ public final class CraftServer implements Server {
Preconditions.checkArgument(recipeKey != null, "recipeKey == null");
MinecraftKey mcKey = CraftNamespacedKey.toMinecraft(recipeKey);
for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> recipes : getServer().getRecipeManager().recipes.values()) {
if (recipes.remove(mcKey) != null) {
return true;
}
}
return false;
return getServer().getRecipeManager().removeRecipe(mcKey);
}
@Override