pufferfish-gg/Pufferfish

"already retired" bug still occuring with plugin-created armor stands

Budderman18 opened this issue · 4 comments

While the entity still does die, it still errors out, which is really only a big deal for the /kill command, since multiple entities won't work.

java.lang.IllegalStateException: Already retired
at io.papermc.paper.threadedregions.EntityScheduler.retire(EntityScheduler.java:66) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.world.entity.Entity.retireScheduler(Entity.java:4798) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.world.entity.Entity.setRemoved(Entity.java:4783) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.world.entity.Entity.remove(Entity.java:727) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.world.entity.LivingEntity.remove(LivingEntity.java:759) ~[?:?]
at net.minecraft.world.entity.decoration.ArmorStand.kill(ArmorStand.java:770) ~[?:?]
at net.minecraft.server.commands.KillCommand.kill(KillCommand.java:25) ~[?:?]
at net.minecraft.server.commands.KillCommand.register(KillCommand.java:18) ~[?:?]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[pufferfish-1.20.1.jar:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:324) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:308) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2300) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$20(ServerGamePacketListenerImpl.java:2260) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1341) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1318) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1311) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1427) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1173) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[pufferfish-1.20.1.jar:git-Pufferfish-8]
at java.lang.Thread.run(Thread.java:1623) ~[?:?]

Do you have reproduction steps for this? I've gotten a bunch of reports but haven't been able to reliably reproduce it.

  1. Using a plugin (that part is key, vanilla spawned ones are save), spawn an armor stand somewhere.
  2. Kill that armor stand in any way, either /kill or destroying in Creative
  3. Should throw the error, but still gets killed.

Can you provide a plugin that exhibits this behavior?

https://drive.google.com/file/d/1D51BfRK3bDC-e7eswVtOdNCv4GMyu6Zb/view?usp=sharing

make an armor stand using "/iwm hologram create (name) (enter armor stand's name here)"