Closed kirito-0 closed 1 month ago
参考首页readme(英文版)里面有一项配置,可以让假人防踢
當假人死後,就無法再次召喚,會出現這樣的訊息。
[12:02:51 INFO]: ABC_0 issued server command: /fp spawn ABC [12:02:51 ERROR]: [CommandAPI] Unhandled exception executing '/fp spawn ABC' io.github.hello09x.devtools.core.message.RuntimeMessageException: fakeplayer.spawn.error.name.existed at io.github.hello09x.fakeplayer.core.manager.FakeplayerManager.spawnAsync(FakeplayerManager.java:102) ~[fakeplayer-0.3.7.jar:?] at io.github.hello09x.fakeplayer.core.command.impl.SpawnCommand.spawn(SpawnCommand.java:69) ~[fakeplayer-0.3.7.jar:?] at dev.jorel.commandapi.executors.CommandExecutor.run(CommandExecutor.java:49) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.executors.NormalExecutor.executeWith(NormalExecutor.java:44) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:137) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:124) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:91) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIHandler.lambda$generateCommand$0(CommandAPIHandler.java:261) ~[CommandAPI-9.5.1.jar:?] at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2230) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2190) ~[?:?] 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) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1465) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:123) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1442) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1365) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:133) ~[?:?] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1516) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1226) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-497] at java.lang.Thread.run(Thread.java:1570) ~[?:?]
这个是报错消息没有正常返回,因为你设置了假人死了不踢 kick-on-dead
,所以假人还在,不能召唤相同名称的假人
把kick-on-dead改成 false也是一樣。
[13:57:55 INFO]: ABC issued server command: /fp spawn ABC0 [13:57:55 ERROR]: [CommandAPI] Unhandled exception executing '/fp spawn ABC0' io.github.hello09x.devtools.core.message.RuntimeMessageException: fakeplayer.spawn.error.name.existed at io.github.hello09x.fakeplayer.core.manager.FakeplayerManager.spawnAsync(FakeplayerManager.java:102) ~[fakeplayer-0.3.7.jar:?] at io.github.hello09x.fakeplayer.core.command.impl.SpawnCommand.spawn(SpawnCommand.java:69) ~[fakeplayer-0.3.7.jar:?] at dev.jorel.commandapi.executors.CommandExecutor.run(CommandExecutor.java:49) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.executors.NormalExecutor.executeWith(NormalExecutor.java:44) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:137) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:124) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIExecutor.execute(CommandAPIExecutor.java:91) ~[CommandAPI-9.5.1.jar:?] at dev.jorel.commandapi.CommandAPIHandler.lambda$generateCommand$0(CommandAPIHandler.java:261) ~[CommandAPI-9.5.1.jar:?] at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2230) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2190) ~[?:?] 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) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1465) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:123) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1442) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1365) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:133) ~[?:?] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1343) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1232) ~[paper-1.20.4.jar:git-Paper-497] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-497] at java.lang.Thread.run(Thread.java:1570) ~[?:?]
你应该改成 true
你应该改成
true
如果你希望假人死了就退,就改成 true
,如果是 false
应该是使用 /fp respawn
去复活他
抱歉,上面說錯了,kick-on-dead改成ture也是報錯。 伺服器重啟後,就無法再用相同名字召喚,使用/fp respawn也是不行。
抱歉,上面說錯了,kick-on-dead改成ture也是報錯。
那试一下看看 TAB 和 list 命令看看这个名称的假人是否还在
TAB 和 list 命令 查看那假人不在,如果是kick-on-dead改成false後,使用/fp respawn 會出現還沒召喚假人。
TAB 和 list 命令 查看那假人不在,如果是kick-on-dead改成false後,使用/fp respawn 會出現還沒召喚假人。
你可以将插件目录和核心压缩成压缩包然后发送到 tan.yaofei@outlook.com 邮箱去吗
請問,是整個plugins資料夾,包含plugins內所有的插件嗎?
請問,是整個plugins資料夾,包含plugins內所有的插件嗎?
是的,因为我在只有 fakeplayer
的插件时是不会有这种问题的,可以不包括数据,但需要包括配置,比如你可以删掉 co i 的数据文件后再发送给我
我在剛剛有發信件給您了,謝謝。
你试试这个还是否有问题
重新召喚假人不會再報錯了,只是重啟伺服器後,需要再重新召喚假人,也要再重新設定同個(相同ID)假人的skin,同個假人背包內的物品是有被保留的。
重新召喚假人不會再報錯了,只是重啟伺服器後,需要再重新召喚假人,也要再重新設定同個(相同ID)假人的skin,同個假人背包內的物品是有被保留的。
这个是正常的,因为目前没有做持久化
原先是什麼導致報錯?
瞭解,謝謝tanyaofei,期待未來的更新。
好的哦,感谢反馈
原先是什麼導致報錯?
瞭解,謝謝tanyaofei,期待未來的更新。
假人自定义名称的时候会判断该名称是否在服务器里游玩过,如果玩过,那么他的存档会在服务器缓存里,插件就会拿到 UUID 判断这个 UUID 是否是假人使用过的,如果不是,则表示这可能是一个真实的玩家,是不被允许使用这个名称的。这一份记录着使用过的 UUID 之前是在 used-uuids.txt
里,后面改造成放在数据库里了,但是指定名称的这一个逻辑少判断了数据库那份,非指定名称的是正常的
诶,我想问问你是通过什么途径找到这个插件的,是 spigotmc 吗,因为我发现最近好多使用繁体字的朋友们来反馈问题
@kirito-0 哥们回一下我呀
@tanyaofei 寄信件回您了。
召喚假人後,假人馬上就退出伺服器。
To Reproduce / 如何触发 Steps to reproduce the behavior: / 触发的步骤
Server information / 服务器信息
Additional context / 更多信息 Add any other context about the problem here. Such as log and plugin list / 添加更多有帮助的信息,如插件列表、日志
[18:32:45] [Server thread/INFO]: issued server command: /fp spawn abc [18:32:46] [Server thread/INFO]: [fakeplayer] Fake player 'abc' will use '5dd889c2-54cc-40e9-a83b-04bb62606c82' as his UUID [18:32:46] [Server thread/WARN]: [ViaVersion] Could not find UserConnection for logging-in player 5dd889c2-54cc-40e9-a83b-04bb62606c82 [18:32:46] [Server thread/INFO]: abc 加入伺服器 [18:32:46] [Server thread/INFO]: abc[/127.0.0.5:25565] logged in with entity id 6029 at ([world]4943.5, 136.0, -494.5) [18:32:46] [Server thread/INFO]: abc lost connection: PacketEvents 2.0 failed to inject [18:32:46] [Server thread/INFO]: abc 離開了伺服器