如图,请问各位大佬这是什么原因造成的,又如何解决
玩家昵称是否有中文的?
咸鱼523 发表于 2022-7-11 06:38
玩家昵称是否有中文的?
无(弱弱吐槽一句非要10个字符才能发评论)
你控制台输入/balance top 看看其输出的数据
玩家id无法识别,或者不存在该玩家
BossBobin 发表于 2022-7-11 12:45
你控制台输入/balance top 看看其输出的数据
与图片显示内容一样
bingdi_ 发表于 2022-7-11 13:02
玩家id无法识别,或者不存在该玩家
不存在该玩家是不可能的,我发现这个问题后又单独查询了其他几位玩家的游戏币数量,单独查询时的ID都是正常显示,但一到排行榜就出现了这种情况
更新PlaceholderAPI试试
然后输入指令
papi ecloud download player
papi ecloud download vault
paapi reload
然后输入指令
papi ecloud download player
papi ecloud download vault
paapi reload
BossBobin 发表于 2022-7-11 13:19
你输入top指令的时候 有报错嘛? 可能为UUID的问题
或者你的变量数据问题了 更新papi的拓展 ...
没有报错,稍后将更新papi
BossBobin 发表于 2022-7-11 13:19
你输入top指令的时候 有报错嘛? 可能为UUID的问题
或者你的变量数据问题了 更新papi的拓展 ...
不好意思,这个报错比较隐晦,只在第一次查看时才会出现,后面都没有出现过,导致我以为没有出现过报错,但事实上是有的
Found UUID 1eaeec6d-8eb5-4965-ba71-50dbc0433f3f for player Galaxyapathy, but player already has a UUID (76d126f9-eeff-311c-933c-bfefa4b8d2cd). Not replacing UUID in usermap.
java.lang.RuntimeException: null
at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:155) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:182) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:30) ~[?:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at com.earth2me.essentials.UserMap.getUser(UserMap.java:129) ~[?:?]
at com.earth2me.essentials.BalanceTopImpl.calculateBalanceTopMap(BalanceTopImpl.java:32) ~[?:?]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:76) [spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot-1.12.2.jar:git-Spigot-79a30d7-f4830a1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_202]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
bingdi_ 发表于 2022-7-11 13:12
更新PlaceholderAPI试试
然后输入指令
papi ecloud download player
已更新并下载和重载,仍无效
BossBobin 发表于 2022-7-11 13:19
你输入top指令的时候 有报错嘛? 可能为UUID的问题
或者你的变量数据问题了 更新papi的拓展 ...
确定为uuid的问题,已经有诸多报错显示有错的uuid替代了原来玩家的uuid,已知玩家登录可将错误的uuid归正,但有没有其他快速的方法将所有玩家的uuid匹配
你这是正版和离线共存是吧
去world里面把错误的拆出来
在world里面的playerdata 给错误的UUID删除就能解决
BossBobin 发表于 2022-7-11 14:54
在world里面的playerdata 给错误的UUID删除就能解决
emm那么如何判断错误的uuid是哪些呢
等枫亭丶烟雨阁 发表于 2022-7-11 15:08
emm那么如何判断错误的uuid是哪些呢
建议是吧 前面的uuid给他删了 因为后面的是已经存在的UUID数据
等枫亭丶烟雨阁 发表于 2022-7-11 15:08
emm那么如何判断错误的uuid是哪些呢
要么就是麻烦点 先把后面那个UUID的ess数据给他挪到现在这个UUID 然后删除后面这个
BossBobin 发表于 2022-7-11 15:24
要么就是麻烦点 先把后面那个UUID的ess数据给他挪到现在这个UUID 然后删除后面这个 ...
emm不是特别明白这个操作是什么意思,可以详细说说吗

等枫亭丶烟雨阁 发表于 2022-7-11 21:55
emm不是特别明白这个操作是什么意思,可以详细说说吗
他的报错是不是found UUID 你去world文件夹的playerdata删除 这个UUID 和ESS的数据 即可
BossBobin 发表于 2022-7-12 00:18
他的报错是不是found UUID 你去world文件夹的playerdata删除 这个UUID 和ESS的数据 即可 ...
明白了,但报错不是常有的,不清楚什么时候报错,能删除的uuid数量也十分有限
等枫亭丶烟雨阁 发表于 2022-7-12 00:22
明白了,但报错不是常有的,不清楚什么时候报错,能删除的uuid数量也十分有限 ...
这是要ess自动检测时候 才会报错 而且同一个ID 用正版离线都登录的话 这个就会一直报错
BossBobin 发表于 2022-7-12 00:47
这是要ess自动检测时候 才会报错 而且同一个ID 用正版离线都登录的话 这个就会一直报错 ...
好的,明白了,能麻烦说一下最优解决方案和预防措施吗
等枫亭丶烟雨阁 发表于 2022-7-12 01:20
好的,明白了,能麻烦说一下最优解决方案和预防措施吗
现在解决报错就是我之前的方法
解决正版和离线UUID分离的问题 只有服务器开启正版验证 然后离线利用外置登录进服最佳限制方法
我之前也遇到过原因是没有删ess的玩家数据 然后把地图文件里的玩家数据删了 玩家没有注册过这个服务器 所以显示null
BossBobin 发表于 2022-7-12 02:00
现在解决报错就是我之前的方法
解决正版和离线UUID分离的问题 只有服务器开启正版验证 然后离线利用外置 ...
嗯,外置登录确实是个好方法,但是否有其他的方法呢,外置登录的话如果认证服务器出问题的话会连累到启动外置登录的服务器,而且离线登录的优点在于方便,外置登录有些人可能不太清楚如何操作
另外如果真的想要解决目前null的情况只能用查报错然后一个一个手改的话,那么我可能要花费特别多的精力才能完成,真的没有其他的批量处理的方法了吗
乔治a 发表于 2022-7-12 02:07
我之前也遇到过原因是没有删ess的玩家数据 然后把地图文件里的玩家数据删了 玩家没有注册过这个服务器 所以 ...
感谢!逻辑很清晰,这很可能是一个重要的原因,我不确定我有没有出现过这种情况,但貌似你说的这个可能性更大一些
等枫亭丶烟雨阁 发表于 2022-7-12 02:20
嗯,外置登录确实是个好方法,但是否有其他的方法呢,外置登录的话如果认证服务器出问题的话会连累到启动 ...
你正版分离UUID只有这个办法 null返回的就是UUID共用一个ID 我的服是这样处理的 之后没有处于这个的报错了
BossBobin 发表于 2022-7-12 02:28
你正版分离UUID只有这个办法 null返回的就是UUID共用一个ID 我的服是这样处理的 之后没有处于这个的报错 ...
外置登录类似于模拟了一个正版验证服务器,那么必定会有id已被占用,现在如果开启外置登录可能会出现玩家ID被占的情况导致无法登录服务器
BossBobin 发表于 2022-7-12 00:47
这是要ess自动检测时候 才会报错 而且同一个ID 用正版离线都登录的话 这个就会一直报错 ...
或许可以换个角度思考,导致uuid问题的原因会不会是组合的原因,如果从外置登录无法容易解决这个问题可以考虑通过其他方法解决问题,原因也可能是26楼说的那样,是因为地图文件里的玩家数据出现了问题,如果保证地图文件里的玩家数据正常是不是即使用另一种方式登录,uuid不一致也会被纠正,就不会出现null的情况
等枫亭丶烟雨阁 发表于 2022-7-12 02:22
感谢!逻辑很清晰,这很可能是一个重要的原因,我不确定我有没有出现过这种情况,但貌似你说的这个可能性 ...
大概率是这种情况,测试是不是这个原因的方法也很简单 看排行榜null金币比较多的金币数值
去ess数据找到对应金币数值的玩家id 然后用它的账号登陆服务器 再查看金币榜是不是正常显示他的名字还是null
乔治a 发表于 2022-7-12 10:26
大概率是这种情况,测试是不是这个原因的方法也很简单 看排行榜null金币比较多的金币数值
去ess数据找到 ...
是的,我昨天就已经发现可以用这个方法修复,登录后就会恢复
等枫亭丶烟雨阁 发表于 2022-7-12 10:29
是的,我昨天就已经发现可以用这个方法修复,登录后就会恢复
那原因就是删了地图玩家数据 我之前就是这样
乔治a 发表于 2022-7-12 12:20
那原因就是删了地图玩家数据 我之前就是这样
那么请问有没有什么方法能快速的将这个问题恢复呢,如果是手动登录的话太慢了,一共有几百个ID
等枫亭丶烟雨阁 发表于 2022-7-12 12:21
那么请问有没有什么方法能快速的将这个问题恢复呢,如果是手动登录的话太慢了,一共有几百个ID ...
没办法的除非找到删除的地图玩家数据, 我之前这样都是把ess数据黏贴到桌面然后再主城放个牌子说明数据被误删要补的联系我。
乔治a 发表于 2022-7-12 12:38
没办法的除非找到删除的地图玩家数据, 我之前这样都是把ess数据黏贴到桌面然后再主城放个牌子说明数据被 ...
但是貌似我并没有删除什么地图的玩家数据啊,只少我印象里没有
等枫亭丶烟雨阁 发表于 2022-7-12 12:44
但是貌似我并没有删除什么地图的玩家数据啊,只少我印象里没有
那我不清楚了,至少在我认知里原因应该是这个