From fb6f1e914b9a5049d9066dcb358e3c46eda35216 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 12 Jan 2015 11:38:47 +1100 Subject: [PATCH] SPIGOT-401: Add async catcher for mob effects. --- .../0010-Async-Operation-Catching.patch | 14 ++++++++++++- CraftBukkit-Patches/0012-Spigot-Timings.patch | 20 +++++++++---------- ...034-Entity-Mount-and-Dismount-Events.patch | 8 ++++---- .../0037-Player-Collision-API.patch | 8 ++++---- .../0080-Cap-Entity-Collisions.patch | 10 +++++----- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/CraftBukkit-Patches/0010-Async-Operation-Catching.patch b/CraftBukkit-Patches/0010-Async-Operation-Catching.patch index 9872d73634..fcd5e01fe7 100644 --- a/CraftBukkit-Patches/0010-Async-Operation-Catching.patch +++ b/CraftBukkit-Patches/0010-Async-Operation-Catching.patch @@ -1,4 +1,4 @@ -From 6e0e7a59a4df1f9e0b631eef3bad68a2cbcea9aa Mon Sep 17 00:00:00 2001 +From 43c975988e8da5b34cc1329bfee89f016ecf2ba5 Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 25 Mar 2014 16:10:01 +1100 Subject: [PATCH] Async Operation Catching @@ -25,6 +25,18 @@ index 12e2b79..9a19752 100644 public int a(Random random) { return 1; +diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java +index fe324a3..331d4de 100644 +--- a/src/main/java/net/minecraft/server/EntityLiving.java ++++ b/src/main/java/net/minecraft/server/EntityLiving.java +@@ -546,6 +546,7 @@ public abstract class EntityLiving extends Entity { + } + + public void addEffect(MobEffect mobeffect) { ++ org.spigotmc.AsyncCatcher.catchOp( "effect add"); // Spigot + if (this.d(mobeffect)) { + if (this.effects.containsKey(Integer.valueOf(mobeffect.getEffectId()))) { + ((MobEffect) this.effects.get(Integer.valueOf(mobeffect.getEffectId()))).a(mobeffect); diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java index c9058db..350f2f7 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java diff --git a/CraftBukkit-Patches/0012-Spigot-Timings.patch b/CraftBukkit-Patches/0012-Spigot-Timings.patch index 85b05f7e4e..67327fa103 100644 --- a/CraftBukkit-Patches/0012-Spigot-Timings.patch +++ b/CraftBukkit-Patches/0012-Spigot-Timings.patch @@ -1,4 +1,4 @@ -From afb2aad236a7e11ba4da622b8907f8cc969d9c82 Mon Sep 17 00:00:00 2001 +From 3d8df83ca8a3eff073f8728f36f5e2422bd8f920 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 10 Jan 2013 00:18:11 -0500 Subject: [PATCH] Spigot Timings @@ -133,7 +133,7 @@ index 424b71d..390c6eb 100644 public boolean ad() { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 976ab95..05213eb 100644 +index ccf6479..c699dd1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -16,6 +16,7 @@ import org.bukkit.entity.Hanging; @@ -171,7 +171,7 @@ index 976ab95..05213eb 100644 private void recalcPosition() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index fe324a3..c7fb84b 100644 +index 331d4de..2a05941 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -17,6 +17,8 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageModifier; @@ -183,7 +183,7 @@ index fe324a3..c7fb84b 100644 public abstract class EntityLiving extends Entity { private static final UUID a = UUID.fromString("662A6B8D-DA3E-4C1C-8813-96EA6097278D"); -@@ -1393,6 +1395,7 @@ public abstract class EntityLiving extends Entity { +@@ -1394,6 +1396,7 @@ public abstract class EntityLiving extends Entity { } public void s_() { @@ -191,7 +191,7 @@ index fe324a3..c7fb84b 100644 super.s_(); if (!this.world.isStatic) { int i = this.bu(); -@@ -1431,7 +1434,9 @@ public abstract class EntityLiving extends Entity { +@@ -1432,7 +1435,9 @@ public abstract class EntityLiving extends Entity { } } @@ -201,7 +201,7 @@ index fe324a3..c7fb84b 100644 double d0 = this.locX - this.lastX; double d1 = this.locZ - this.lastZ; float f = (float) (d0 * d0 + d1 * d1); -@@ -1496,6 +1501,7 @@ public abstract class EntityLiving extends Entity { +@@ -1497,6 +1502,7 @@ public abstract class EntityLiving extends Entity { this.world.methodProfiler.b(); this.aR += f2; @@ -209,7 +209,7 @@ index fe324a3..c7fb84b 100644 } protected float h(float f, float f1) { -@@ -1560,6 +1566,7 @@ public abstract class EntityLiving extends Entity { +@@ -1561,6 +1567,7 @@ public abstract class EntityLiving extends Entity { } this.world.methodProfiler.a("ai"); @@ -217,7 +217,7 @@ index fe324a3..c7fb84b 100644 if (this.bC()) { this.aW = false; this.aX = 0.0F; -@@ -1570,6 +1577,7 @@ public abstract class EntityLiving extends Entity { +@@ -1571,6 +1578,7 @@ public abstract class EntityLiving extends Entity { this.doTick(); this.world.methodProfiler.b(); } @@ -225,7 +225,7 @@ index fe324a3..c7fb84b 100644 this.world.methodProfiler.b(); this.world.methodProfiler.a("jump"); -@@ -1591,11 +1599,15 @@ public abstract class EntityLiving extends Entity { +@@ -1592,11 +1600,15 @@ public abstract class EntityLiving extends Entity { this.aX *= 0.98F; this.aY *= 0.98F; this.aZ *= 0.9F; @@ -367,7 +367,7 @@ index 5e53661..49429d7 100644 this.methodProfiler.b(); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 6d3e88b..fad01f3 100644 +index 2d8ad1c..3727214 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1042,6 +1042,8 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList diff --git a/CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch b/CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch index 1f8b8c7489..cdc91bb4b5 100644 --- a/CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch +++ b/CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch @@ -1,14 +1,14 @@ -From 503fab3aa66ad3ab3e26d04446905dc1f1f78ce9 Mon Sep 17 00:00:00 2001 +From f95ad09026516fda6088df0b0319b4583fa3efee Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 2 Jul 2013 20:32:49 +1000 Subject: [PATCH] Entity Mount and Dismount Events diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 33709ce..bcb815c 100644 +index 9dcddb1..8f7d865 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1544,6 +1544,7 @@ public abstract class Entity implements ICommandListener { +@@ -1537,6 +1537,7 @@ public abstract class Entity implements ICommandListener { } } // CraftBukkit end @@ -16,7 +16,7 @@ index 33709ce..bcb815c 100644 this.setPositionRotation(this.vehicle.locX, this.vehicle.getBoundingBox().b + (double) this.vehicle.length, this.vehicle.locZ, this.yaw, this.pitch); this.vehicle.passenger = null; } -@@ -1578,6 +1579,18 @@ public abstract class Entity implements ICommandListener { +@@ -1571,6 +1572,18 @@ public abstract class Entity implements ICommandListener { } } // CraftBukkit end diff --git a/CraftBukkit-Patches/0037-Player-Collision-API.patch b/CraftBukkit-Patches/0037-Player-Collision-API.patch index 3860c0cbdc..2957d38903 100644 --- a/CraftBukkit-Patches/0037-Player-Collision-API.patch +++ b/CraftBukkit-Patches/0037-Player-Collision-API.patch @@ -1,4 +1,4 @@ -From 9b8b992e0eef3ccb396d756be6665fa8d37367b0 Mon Sep 17 00:00:00 2001 +From ff00b8a9c49a289d0cac4c8fb4119e61c2fd140b Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 3 Aug 2013 19:27:07 +1000 Subject: [PATCH] Player Collision API @@ -25,10 +25,10 @@ index 7eb41e1..b65c225 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 6bb5428..2d14a0d 100644 +index fc8517d..b231ee2 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1625,7 +1625,7 @@ public abstract class EntityLiving extends Entity { +@@ -1626,7 +1626,7 @@ public abstract class EntityLiving extends Entity { protected void bK() { List list = this.world.getEntities(this, this.getBoundingBox().grow(0.20000000298023224D, 0.0D, 0.20000000298023224D)); @@ -38,7 +38,7 @@ index 6bb5428..2d14a0d 100644 Entity entity = (Entity) list.get(i); diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 69229da..768a743 100644 +index ce54ae8..b957470 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -62,6 +62,21 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch b/CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch index ce466efbbe..6f695c941f 100644 --- a/CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch +++ b/CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch @@ -1,4 +1,4 @@ -From 97d9a64624d50f83d4d8612bfa2c0f24f8d47c39 Mon Sep 17 00:00:00 2001 +From 901e9094f475719aa9c5f5fd691d85ed90d05130 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 31 Jan 2014 11:18:34 -0500 Subject: [PATCH] Cap Entity Collisions @@ -7,7 +7,7 @@ Limit a single entity to colliding a max of configurable times per tick. This will alleviate issues where living entities are hoarded in 1x1 pens. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f96a153..0a5d1bb 100644 +index a1d51a8..25192f3 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1059,6 +1059,7 @@ public abstract class Entity implements ICommandListener { @@ -19,10 +19,10 @@ index f96a153..0a5d1bb 100644 if (entity.passenger != this && entity.vehicle != this) { if (!entity.T && !this.T) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 2d14a0d..807d5fa 100644 +index b231ee2..d954ce9 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1626,7 +1626,9 @@ public abstract class EntityLiving extends Entity { +@@ -1627,7 +1627,9 @@ public abstract class EntityLiving extends Entity { List list = this.world.getEntities(this, this.getBoundingBox().grow(0.20000000298023224D, 0.0D, 0.20000000298023224D)); if (this.ad() && list != null && !list.isEmpty()) { // Spigot: Add this.ad() condition @@ -32,7 +32,7 @@ index 2d14a0d..807d5fa 100644 Entity entity = (Entity) list.get(i); // TODO better check now? -@@ -1637,9 +1639,12 @@ public abstract class EntityLiving extends Entity { +@@ -1638,9 +1640,12 @@ public abstract class EntityLiving extends Entity { // CraftBukkit end if (entity.ae()) {