-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
MacOS Java 16
-
version 3149-Spigot-101ebb6-9122f5a (MC: 1.17) (Implementing API version 1.17-R0.1-SNAPSHOT)
-
Yes
Cancelling the slime split event seems to cause an infinite loop:
[12:45:18] [Server thread/WARN]: [Magic] [33m Removing an invalid NPC (id=d1699325-ddb5-4cad-aff4-569b83e3f805) entity of type VILLAGER at [world] -506,63,1038[0m[12:45:18] [Server thread/WARN]: [Magic] [33m Removing an invalid NPC (id=d1699325-ddb5-4cad-aff4-569b83e3f805) entity of type VILLAGER at [world] -506,63,1038[0m[12:45:19] [Server thread/ERROR]: Encountered an unexpected exceptionnet.minecraft.ReportedException: Ticking entity at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1310) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:436) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1200) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1027) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:307) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at java.lang.Thread.run(Thread.java:831) [?:?]Caused by: java.lang.StackOverflowError at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2017) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1983) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:750) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at org.bukkit.craftbukkit.v1_17_R1.util.ForwardLogHandler.publish(ForwardLogHandler.java:32) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at java.util.logging.Logger.log(Logger.java:979) ~[?:?] at java.util.logging.Logger.doLog(Logger.java:1006) ~[?:?] at java.util.logging.Logger.log(Logger.java:1117) ~[?:?] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:604) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.world.entity.monster.EntitySlime.a(EntitySlime.java:213) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.world.entity.Entity.die(Entity.java:415) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.world.entity.monster.EntitySlime.a(EntitySlime.java:218) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.world.entity.Entity.die(Entity.java:415) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] at net.minecraft.world.entity.monster.EntitySlime.a(EntitySlime.java:218) ~[spigot-1.17.jar:3149-Spigot-101ebb6-9122f5a] ... ad infinitem
The server then crashes.
I can't tell what changed, but I can see in EntitySlime.a(RemovalReason) if the event is cancelled it calls back up to die() which would then call back down to a(). I am unsure what the correct behavior would be.
I can make up a test plugin if helpful, I just can't do it right now.