craftbukkit/nms-patches/net/minecraft/stats/RecipeBookServer.patch

39 lines
1.6 KiB
Diff
Raw Normal View History

2021-03-16 09:00:00 +11:00
--- a/net/minecraft/stats/RecipeBookServer.java
+++ b/net/minecraft/stats/RecipeBookServer.java
2025-03-26 03:05:00 +11:00
@@ -26,6 +26,8 @@
2024-10-23 02:15:00 +11:00
import net.minecraft.world.item.crafting.display.RecipeDisplayId;
2022-03-01 02:00:00 +11:00
import org.slf4j.Logger;
2021-03-09 08:47:33 +11:00
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
public class RecipeBookServer extends RecipeBook {
2021-06-11 15:00:00 +10:00
public static final String RECIPE_BOOK_TAG = "recipeBook";
2025-03-26 03:05:00 +11:00
@@ -68,7 +70,7 @@
for (RecipeHolder<?> recipeholder : collection) {
2024-10-23 02:15:00 +11:00
ResourceKey<IRecipe<?>> resourcekey = recipeholder.id();
2024-10-23 02:15:00 +11:00
- if (!this.known.contains(resourcekey) && !recipeholder.value().isSpecial()) {
+ if (!this.known.contains(resourcekey) && !recipeholder.value().isSpecial() && CraftEventFactory.handlePlayerRecipeListUpdateEvent(entityplayer, resourcekey.location())) { // CraftBukkit
this.add(resourcekey);
this.addHighlight(resourcekey);
this.displayResolver.displaysForRecipe(resourcekey, (recipedisplayentry) -> {
2025-03-26 03:05:00 +11:00
@@ -78,7 +80,7 @@
2024-10-23 02:15:00 +11:00
}
}
2024-10-23 02:15:00 +11:00
- if (!list.isEmpty()) {
+ if (!list.isEmpty() && entityplayer.connection != null) { // SPIGOT-4478 during PlayerLoginEvent
entityplayer.connection.send(new ClientboundRecipeBookAddPacket(list, false));
}
2025-03-26 03:05:00 +11:00
@@ -99,7 +101,7 @@
2024-10-23 02:15:00 +11:00
}
}
- if (!list.isEmpty()) {
+ if (!list.isEmpty() && entityplayer.connection != null) { // SPIGOT-4478 during PlayerLoginEvent
entityplayer.connection.send(new ClientboundRecipeBookRemovePacket(list));
}