PlayerSQL icon indicating copy to clipboard operation
PlayerSQL copied to clipboard

2.11.6 同步时概率出现玩家经验被设置满值

Open Azrael070 opened this issue 3 years ago • 4 comments

服务器核心:Paper-1.12.2-1618 JAVA版本:1.8.311 playerSQL版本:v2.11.6 simpleorm-1.3-SNAPSHOT

我的服务器分为主城区和生存区,当玩家从主城区跨至生存区时,从主城区离线时的记录显示该玩家的经验等级为 21863 级,随后就被同步到了生存区并成功卡出等级;而在玩家进入主城区时记录的经验等级仅有 69 级,期间该玩家仅仅执行了从菜单(Trmenu)跨服的操作(前后用时八秒,从 log 得知该玩家未进行其他操作)。

尝试复现,但未成功。

Azrael070 avatar Aug 23 '22 12:08 Azrael070

听起来很奇怪,我的插件也只是调用了设置等级的api,按理说不会出现这么离谱的结果

caoli5288 avatar Aug 23 '22 13:08 caoli5288

的确很离谱,但我看到一份曾经和我情况相同的 issue(也是玩家的经验被设置为int的上限值) https://github.com/caoli5288/PlayerSQL/issues/62

image 这是我的插件列表,只有 playersql 掌管经验同步,其余由插件的经验调动只有 Trmenu 使用控制台命令 /cmi exp 对玩家的经验进行扣除(在我这里出现的几例,他们当时没有用过 Trmenu 扣除经验的相关内容,只是正常游戏或跨服就卡出如此多的经验了)

Azrael070 avatar Aug 23 '22 14:08 Azrael070

image 可能是这里的原因吗...

Azrael070 avatar Aug 23 '22 23:08 Azrael070

如果有问题只可能是这里的问题了,听起来跟其他插件扣经验的逻辑有不兼容,顺便一提这段代码是我从ess抠下来的

caoli5288 avatar Aug 24 '22 02:08 caoli5288