Repository navigation
[Bug] FakePlayer kill 触发 TabTPS Cannot remove non-existing user 及自身 Already retired / NPE 异常 #70
Description
[17:08:09 INFO]: YUUUJ1N issued server command: /fakeplayer kill YUUUJ1N_1
[17:08:09 INFO]: YUUUJ1N_1 lost connection: [fakeplayer] YUUUJ1N_1死了
[17:08:09 INFO]: [-] YUUUJ1N_1退出了游戏
[17:08:09 ERROR]: Could not pass event PlayerQuitEvent to TabTPS v1.4.2
java.lang.IllegalStateException: Cannot remove non-existing user 90863164-ba43-4470-a3ee-3422a5ef8e61
at tabtps-paper-1.4.2.jar//xyz.jpenilla.tabtps.common.service.UserService.removeUser(UserService.java:158) ~[?:?]
at tabtps-paper-1.4.2.jar//xyz.jpenilla.tabtps.common.service.UserService.handleQuit(UserService.java:193) ~[?:?]
at tabtps-paper-1.4.2.jar//xyz.jpenilla.tabtps.paper.JoinQuitListener.onQuit(JoinQuitListener.java:47) ~[?:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:71) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:69) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.players.PlayerList.remove(PlayerList.java:628) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2274) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2252) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect0(ServerCommonPacketListenerImpl.java:514) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect(ServerCommonPacketListenerImpl.java:505) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect(ServerCommonPacketListenerImpl.java:437) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.disconnect(ServerGamePacketListenerImpl.java:3816) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.craftbukkit.entity.CraftPlayer.kick(CraftPlayer.java:665) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.entity.Player.kick(Player.java:357) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.manager.FakeplayerManager.remove(FakeplayerManager.java:300) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.listener.FakeplayerListener.kickOrNotifyOnDead(FakeplayerListener.java:142) ~[?:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:71) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:69) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:1019) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.level.ServerPlayer.die(ServerPlayer.java:1173) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.craftbukkit.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:144) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.command.impl.KillCommand.kill(KillCommand.java:29) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.executors.CommandExecutor.run(CommandExecutor.java:49) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.executors.NormalExecutor.executeWith(NormalExecutor.java:44) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:137) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:124) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:91) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIHandler.lambda$generateCommand$0(CommandAPIHandler.java:268) ~[?:?]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.3.10.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:30) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:13) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:104) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:483) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.performCommand(Commands.java:388) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.performCommand(Commands.java:376) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2384) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$12(ServerGamePacketListenerImpl.java:2357) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:177) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1528) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:188) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:151) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.runAllTasksAtTickStart(MinecraftServer.java:1175) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1670) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1338) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:390) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]
[17:08:09 INFO]: [-] YUUUJ1N_1退出了游戏
[17:08:09 ERROR]: Could not pass event PlayerDeathEvent to FakePlayer-CE vfp.build13
java.lang.IllegalStateException: Already retired
at io.papermc.paper.threadedregions.EntityScheduler.retire(EntityScheduler.java:116) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.world.entity.Entity.retireScheduler(Entity.java:5310) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.players.PlayerList.remove(PlayerList.java:682) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2274) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2252) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect0(ServerCommonPacketListenerImpl.java:514) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect(ServerCommonPacketListenerImpl.java:505) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect(ServerCommonPacketListenerImpl.java:437) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.disconnect(ServerGamePacketListenerImpl.java:3816) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.craftbukkit.entity.CraftPlayer.kick(CraftPlayer.java:665) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.entity.Player.kick(Player.java:357) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.manager.FakeplayerManager.remove(FakeplayerManager.java:300) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.listener.FakeplayerListener.kickOrNotifyOnDead(FakeplayerListener.java:142) ~[?:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:71) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:69) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[leaves-api-1.21.11-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:1019) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.level.ServerPlayer.die(ServerPlayer.java:1173) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at org.bukkit.craftbukkit.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:144) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.command.impl.KillCommand.kill(KillCommand.java:29) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.executors.CommandExecutor.run(CommandExecutor.java:49) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.executors.NormalExecutor.executeWith(NormalExecutor.java:44) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:137) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:124) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:91) ~[?:?]
at CommandAPI-11.2.0-Paper.jar//dev.jorel.commandapi.CommandAPIHandler.lambda$generateCommand$0(CommandAPIHandler.java:268) ~[?:?]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.3.10.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:30) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:13) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:104) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:483) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.performCommand(Commands.java:388) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.commands.Commands.performCommand(Commands.java:376) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2384) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$12(ServerGamePacketListenerImpl.java:2357) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:177) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1528) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:188) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:151) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.runAllTasksAtTickStart(MinecraftServer.java:1175) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1670) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1338) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:390) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]
[17:08:09 INFO]: 已重置 YUUUJ1N_1 的游戏时间。
[17:08:09 INFO]: [FakePlayer-CE] Dispatched command: playtime resetplaytime YUUUJ1N_1
[17:08:09 WARN]: [FakePlayer-CE] Global task for FakePlayer-CE vfp.build13 generated an exception
java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "replacement" is null
at java.base/java.lang.String.replace(String.java:3151) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.util.Commands.formatCommands(Commands.java:33) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.manager.FakeplayerManager.dispatchCommands(FakeplayerManager.java:630) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.listener.FakeplayerLifecycleListener.lambda$onAfterQuit$1(FakeplayerLifecycleListener.java:98) ~[?:?]
at fakeplayer-fp.build13.jar//io.github.hello09x.fakeplayer.core.util.Schedulers.lambda$globalLater$1(Schedulers.java:49) ~[?:?]
at io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler$GlobalScheduledTask.run(FoliaGlobalRegionScheduler.java:178) ~[leaves-1.21.11.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler.tick(FoliaGlobalRegionScheduler.java:36) ~[leaves-1.21.11.jar:?]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1762) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1614) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:433) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1671) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1338) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:390) ~[leaves-1.21.11.jar:1.21.11-156-d3ab8e2]
at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]
Activity
EndlessPixel commentedon Oct 13, 2026
你的问题我已经了解,但是我现在没有时间,没法为您处理,你可能要等到3-5天后
[-]一个不影响使用,但是会弹报错的问题,附日志供参考[/-][+][Bug] FakePlayer kill 触发 TabTPS Cannot remove non-existing user 及自身 Already retired / NPE 异常[/+]docs(changelog): 补记 build14 缺失条目(#70 修复与 Java 25 运行要求)
fix(player): 修复假人移除时重复退出与二次移除 (EndlessPixel-Studio#70)