From f56e2e787f425025af0d7410ff4cdb4f8edf7f3b Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 7 Jan 2019 10:30:38 +1100 Subject: [PATCH] Catch async recipe add --- .../0007-Async-Operation-Catching.patch | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/CraftBukkit-Patches/0007-Async-Operation-Catching.patch b/CraftBukkit-Patches/0007-Async-Operation-Catching.patch index 57f909c2..a42d33ab 100644 --- a/CraftBukkit-Patches/0007-Async-Operation-Catching.patch +++ b/CraftBukkit-Patches/0007-Async-Operation-Catching.patch @@ -1,4 +1,4 @@ -From e12f2c3099e661511fa2b1e3af4047ef0520f076 Mon Sep 17 00:00:00 2001 +From 74a3f95af3c907f627f55f22a52a173dbe6bb789 Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 25 Mar 2014 16:10:01 +1100 Subject: [PATCH] Async Operation Catching @@ -6,7 +6,7 @@ Subject: [PATCH] Async Operation Catching Catch and throw an exception when a potentially unsafe operation occurs on a thread other than the main server thread. diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index f6829ff07..c09961be9 100644 +index f6829ff0..c09961be 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -373,10 +373,14 @@ public class Block implements IMaterial { @@ -26,8 +26,20 @@ index f6829ff07..c09961be9 100644 public int a(IBlockData iblockdata, Random random) { return 1; +diff --git a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java +index 26f16163..577a6910 100644 +--- a/src/main/java/net/minecraft/server/CraftingManager.java ++++ b/src/main/java/net/minecraft/server/CraftingManager.java +@@ -81,6 +81,7 @@ public class CraftingManager implements IResourcePackListener { + } + + public void a(IRecipe irecipe) { ++ org.spigotmc.AsyncCatcher.catchOp("Recipe Add"); // Spigot + if (this.recipes.containsKey(irecipe.getKey())) { + throw new IllegalStateException("Duplicate recipe ignored with ID " + irecipe.getKey()); + } else { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 018144d19..338532fa2 100644 +index 018144d1..338532fa 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -725,6 +725,7 @@ public abstract class EntityLiving extends Entity { @@ -39,7 +51,7 @@ index 018144d19..338532fa2 100644 effectsToProcess.add(new ProcessableEffect(mobeffect, cause)); return true; diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java -index 1646a56f5..9237ae20e 100644 +index 1646a56f..9237ae20 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -105,6 +105,7 @@ public class EntityTracker { @@ -59,7 +71,7 @@ index 1646a56f5..9237ae20e 100644 EntityPlayer entityplayer = (EntityPlayer) entity; Iterator iterator = this.c.iterator(); diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 40b7d8d06..d00401ce1 100644 +index 40b7d8d0..d00401ce 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -324,6 +324,7 @@ public class EntityTrackerEntry { @@ -79,7 +91,7 @@ index 40b7d8d06..d00401ce1 100644 this.trackedPlayers.remove(entityplayer); this.tracker.c(entityplayer); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e5b3c3f0a..010ddbc5e 100644 +index e5b3c3f0..010ddbc5 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -857,6 +857,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -115,7 +127,7 @@ index e5b3c3f0a..010ddbc5e 100644 this.entityList.add(entity); this.b(entity); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 47f156ea7..23ede066e 100644 +index 47f156ea..23ede066 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -678,6 +678,7 @@ public final class CraftServer implements Server { @@ -127,7 +139,7 @@ index 47f156ea7..23ede066e 100644 if (commandMap.dispatch(sender, commandLine)) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f5fce00ca..88182d21e 100644 +index f5fce00c..88182d21 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -190,6 +190,7 @@ public class CraftWorld implements World { @@ -163,7 +175,7 @@ index f5fce00ca..88182d21e 100644 return world.getChunkProvider().getChunkAt(x, z, true, generate) != null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ef17b0ab8..700af54cf 100644 +index cf560784..285ec87c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -291,6 +291,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -175,7 +187,7 @@ index ef17b0ab8..700af54cf 100644 getHandle().playerConnection.disconnect(message == null ? "" : message); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java -index cac87d306..9cce899f5 100644 +index cac87d30..9cce899f 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java @@ -43,6 +43,7 @@ public final class CraftScoreboardManager implements ScoreboardManager { @@ -187,7 +199,7 @@ index cac87d306..9cce899f5 100644 scoreboards.add(scoreboard); return scoreboard; diff --git a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java -index ae3481ba8..a0cdd2317 100644 +index ae3481ba..a0cdd231 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java +++ b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java @@ -13,6 +13,7 @@ public class ServerShutdownThread extends Thread { @@ -200,7 +212,7 @@ index ae3481ba8..a0cdd2317 100644 ex.printStackTrace(); diff --git a/src/main/java/org/spigotmc/AsyncCatcher.java b/src/main/java/org/spigotmc/AsyncCatcher.java new file mode 100644 -index 000000000..4b3aa85c9 +index 00000000..4b3aa85c --- /dev/null +++ b/src/main/java/org/spigotmc/AsyncCatcher.java @@ -0,0 +1,17 @@