diff --git a/Spigot-Server-Patches/0333-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch b/Spigot-Server-Patches/0333-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch new file mode 100644 index 0000000000..fe12267e0f --- /dev/null +++ b/Spigot-Server-Patches/0333-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch @@ -0,0 +1,29 @@ +From 4b0d74a924803d09ea2ba1e95f38afc4de96d86f Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Thu, 19 Jul 2018 01:23:00 -0400 +Subject: [PATCH] Don't process despawn if entity is in a chunk scheduled for + unload + +This won't happen anyways if the user has +"skip ticking for entities in chunks scheduled for unload" turned on, +but if they don't, protect from this instant killing the entity to +keep it vanilla in behavior + +a player may teleport away, and trigger instant despawn + +diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java +index 89e878365..d6a1933ad 100644 +--- a/src/main/java/net/minecraft/server/EntityInsentient.java ++++ b/src/main/java/net/minecraft/server/EntityInsentient.java +@@ -628,6 +628,8 @@ public abstract class EntityInsentient extends EntityLiving { + if (this.persistent) { + this.ticksFarFromPlayer = 0; + } else { ++ Chunk currentChunk = getChunkAtLocation(); // Paper ++ if (currentChunk != null && (currentChunk.isUnloading() || currentChunk.scheduledForUnload != null)) return; // Paper + EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D); + + if (entityhuman != null && entityhuman.affectsSpawning) { // Paper - Affects Spawning API +-- +2.18.0 +