diff --git a/Spigot-Server-Patches/0424-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/Spigot-Server-Patches/0424-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch new file mode 100644 index 0000000000..2b913cdcd1 --- /dev/null +++ b/Spigot-Server-Patches/0424-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch @@ -0,0 +1,43 @@ +From c793973ddc0690b434945f844250b8e79d3bf60d Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sun, 24 Mar 2019 01:01:32 -0400 +Subject: [PATCH] Only count Natural Spawned mobs towards natural spawn mob + limit + +This resolves the super common complaint about mobs not spawning. + +This was ultimately a flaw in the vanilla count algorithim that allows +spawners and other misc mobs to count against the mob limit, which are +not bounded, and can prevent the entire world from spawning new. + +I believe Bukkits changes around persistence may of actually made it +worse than vanilla. + +This should fully solve all of the issues around it so that only natural +influences natural spawns. + +diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldEntityList.java b/src/main/java/com/destroystokyo/paper/PaperWorldEntityList.java +index a10a5bc138..8ad00c7d11 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperWorldEntityList.java ++++ b/src/main/java/com/destroystokyo/paper/PaperWorldEntityList.java +@@ -7,6 +7,7 @@ import net.minecraft.server.IAnimal; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.World; + import net.minecraft.server.WorldServer; ++import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; + + import java.util.ArrayList; + import java.util.Collection; +@@ -90,7 +91,8 @@ public class PaperWorldEntityList extends ArrayList { + } + + public void updateEntityCount(Entity entity, int amt) { +- if (!(entity instanceof IAnimal)) return; ++ // Only count natural spawns so that mob ++ if (!(entity instanceof IAnimal) || entity.spawnReason != SpawnReason.NATURAL) return; + + if (entity instanceof EntityInsentient) { + EntityInsentient entityinsentient = (EntityInsentient) entity; +-- +2.21.0 +