mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 06:58:11 +02:00
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 122289ff Add FaceAttachable interface to handle Grindstone facing in common with Switches a6db750e SPIGOT-5647: ZombieVillager entity should have getVillagerType() CraftBukkit Changes:bbe3d58e
SPIGOT-5650: Lectern.setPage(int) causes a NullPointerException3075579f
Add FaceAttachable interface to handle Grindstone facing in common with Switches95bd4238
SPIGOT-5647: ZombieVillager entity should have getVillagerType()4d975ac3
SPIGOT-5617: setBlockData does not work when NotPlayEvent is called by redstone current
42 lines
2.2 KiB
Diff
42 lines
2.2 KiB
Diff
From d778699c1d27e184b08b5ea229b044414bfc84cb 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 eb7b8d94c8..a063d1bfaa 100644
|
|
--- a/src/main/java/net/minecraft/server/Explosion.java
|
|
+++ b/src/main/java/net/minecraft/server/Explosion.java
|
|
@@ -151,7 +151,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 c75ed9ddc1..c1f462d9d3 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.25.1
|
|
|