aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/stats/RecipeBookServer.patch')
-rw-r--r--patch-remap/og/net/minecraft/stats/RecipeBookServer.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch b/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch
new file mode 100644
index 0000000000..82d48407a1
--- /dev/null
+++ b/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch
@@ -0,0 +1,28 @@
+--- a/net/minecraft/stats/RecipeBookServer.java
++++ b/net/minecraft/stats/RecipeBookServer.java
+@@ -20,6 +20,8 @@
+ import net.minecraft.world.item.crafting.RecipeHolder;
+ import org.slf4j.Logger;
+
++import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
++
+ public class RecipeBookServer extends RecipeBook {
+
+ public static final String RECIPE_BOOK_TAG = "recipeBook";
+@@ -36,7 +38,7 @@
+ RecipeHolder<?> recipeholder = (RecipeHolder) iterator.next();
+ MinecraftKey minecraftkey = recipeholder.id();
+
+- if (!this.known.contains(minecraftkey) && !recipeholder.value().isSpecial()) {
++ if (!this.known.contains(minecraftkey) && !recipeholder.value().isSpecial() && CraftEventFactory.handlePlayerRecipeListUpdateEvent(entityplayer, minecraftkey)) { // CraftBukkit
+ this.add(minecraftkey);
+ this.addHighlight(minecraftkey);
+ list.add(minecraftkey);
+@@ -73,6 +75,7 @@
+ }
+
+ private void sendRecipes(PacketPlayOutRecipes.Action packetplayoutrecipes_action, EntityPlayer entityplayer, List<MinecraftKey> list) {
++ if (entityplayer.connection == null) return; // SPIGOT-4478 during PlayerLoginEvent
+ entityplayer.connection.send(new PacketPlayOutRecipes(packetplayoutrecipes_action, list, Collections.emptyList(), this.getBookSettings()));
+ }
+