--- a/net/minecraft/server/RecipeBookServer.java +++ b/net/minecraft/server/RecipeBookServer.java @@ -9,6 +9,7 @@ import java.util.function.Consumer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit public class RecipeBookServer extends RecipeBook { @@ -28,7 +29,7 @@ IRecipe<?> irecipe = (IRecipe) iterator.next(); MinecraftKey minecraftkey = irecipe.getKey(); - if (!this.a.contains(minecraftkey) && !irecipe.isComplex()) { + if (!this.a.contains(minecraftkey) && !irecipe.isComplex() && CraftEventFactory.handlePlayerRecipeListUpdateEvent(entityplayer, minecraftkey)) { // CraftBukkit this.a(minecraftkey); this.d(minecraftkey); list.add(minecraftkey); @@ -62,6 +63,7 @@ } private void a(PacketPlayOutRecipes.Action packetplayoutrecipes_action, EntityPlayer entityplayer, List<MinecraftKey> list) { + if (entityplayer.playerConnection == null) return; // SPIGOT-4478 during PlayerLoginEvent entityplayer.playerConnection.sendPacket(new PacketPlayOutRecipes(packetplayoutrecipes_action, list, Collections.emptyList(), this.c, this.d, this.e, this.f)); }