aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0031-Fix-lag-from-explosions-processing-dead-entities.patch
blob: 0b07da18a23660307772f8feb785a4a3dc8272e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From c52d35277cee8d0e03e323c2b717b510d667c1db Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Wed, 2 Mar 2016 01:39:52 -0600
Subject: [PATCH] Fix lag from explosions processing dead entities


diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
index 462f8f33a1..e1c628f177 100644
--- a/src/main/java/net/minecraft/server/Explosion.java
+++ b/src/main/java/net/minecraft/server/Explosion.java
@@ -146,7 +146,14 @@ public class Explosion {
         int i1 = MathHelper.floor(this.posY + (double) f3 + 1.0D);
         int j1 = MathHelper.floor(this.posZ - (double) f3 - 1.0D);
         int k1 = MathHelper.floor(this.posZ + (double) f3 + 1.0D);
-        List<Entity> list = this.world.getEntities(this.source, new AxisAlignedBB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1));
+        // Paper start - Fix lag from explosions processing dead entities
+        List<Entity> list = this.world.getEntities(this.source, new AxisAlignedBB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1), new com.google.common.base.Predicate<Entity>() {
+            @Override
+            public boolean apply(Entity entity) {
+                return IEntitySelector.canAITarget().test(entity) && !entity.dead;
+            }
+        });
+        // Paper end
         Vec3D vec3d = new Vec3D(this.posX, this.posY, this.posZ);
 
         for (int l1 = 0; l1 < list.size(); ++l1) {
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index e2744dc40d..9bf1919451 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -14,6 +14,7 @@ public final class IEntitySelector {
     public static final Predicate<Entity> d = (entity) -> {
         return entity instanceof IInventory && entity.isAlive();
     };
+    public static Predicate<Entity> canAITarget() { return e; } // Paper - OBFHELPER
     public static final Predicate<Entity> e = (entity) -> {
         return !(entity instanceof EntityHuman) || !entity.isSpectator() && !((EntityHuman) entity).isCreative();
     };
-- 
2.21.0