Fire EntityRemovedFromWorldEvent for all entities (Fixes #2282)

This commit is contained in:
Shane Freeder
2019-10-19 09:14:26 +01:00
parent 905ce4d1d9
commit 8263d100e2
8 changed files with 17 additions and 16 deletions

View File

@@ -5,9 +5,18 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 559dee777..bd5b16299 100644
index 559dee777..00b1f21f7 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World {
if (entity instanceof EntityInsentient) {
this.H.remove(((EntityInsentient) entity).getNavigation());
}
-
+ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
entity.valid = false; // CraftBukkit
}
@@ -0,0 +0,0 @@ public class WorldServer extends World {
entity.origin = entity.getBukkitEntity().getLocation();
}
@@ -16,12 +25,4 @@ index 559dee777..bd5b16299 100644
}
}
@@ -0,0 +0,0 @@ public class WorldServer extends World {
if (this.tickingEntities) {
throw new IllegalStateException("Removing entity while ticking!");
} else {
+ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
this.removeEntityFromChunk(entity);
this.entitiesById.remove(entity.getId());
this.unregisterEntity(entity);
--