mlus-asuka / PlayerSync

This is a Minecraft forge mod using Mysql backend to make player data synchronization between different servers.
GNU General Public License v3.0
5 stars 1 forks source link

[1.19.3] 无效的玩家数据 #3

Closed mocksonline closed 1 year ago

mocksonline commented 1 year ago

前置条件: 客户端:原版minecraft java edition 1.19.3 服务端:forge-1.19.3-44.1.16 with mod only playersync playersync下载于github,是 released on Dec 9, 2022 的那个版本 除了playersync,其他的所有的设置没有动过 playersync已经连上了mysql,发送了PlayerSync is ready!

症状: 玩家加入服务器(第一次),没有进入世界,直接抛出“连接已丢失,无效的玩家数据” 附上log:https://pastebin.com/HhhR5855

mocksonline commented 1 year ago

重复检查: 删除数据库,删除世界存档之后,再进行开启服务器的操作,玩家依然不能进入

mocksonline commented 1 year ago

mysql服务器版本mysql 8.0.32

mlus-asuka commented 1 year ago

Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER 我是用1.19.2的MCP包编译的。应该是1.19.3改了。之前写了同步聊天的代码还没有测试过。我先抓紧把1.19.3和1.18.2编译出来吧

mocksonline commented 1 year ago

就,刚刚试了1.19.2也不行,你看你能复现不 客户端和服务端都是1.19.2 forge 43.2.4(最新版本) 没有其他mod,清掉了playersync数据库

mocksonline commented 1 year ago

如果你不能复现那大概率是我数据库问题

mocksonline commented 1 year ago

https://pastebin.com/dEZMSDN5 log是差不多的

mocksonline commented 1 year ago

可能不是聊天的问题,因为我删掉聊天代码也有这个问题

mlus-asuka commented 1 year ago

可能不是聊天的问题,因为我删掉聊天代码也有这个问题

我知道什么问题了。你等我下一个release吧

mocksonline commented 1 year ago

可能不是聊天的问题,因为我删掉聊天代码也有这个问题

我知道什么问题了。你等我下一个release吧

还是有问题,出问题的现在是VanillaSync.java:166行,你有时间看看能不能复现

mocksonline commented 1 year ago

确实就是这个成就同步问题,删了一切正常了

mocksonline commented 1 year ago

然后在LocalJsonUtil.java:28行还有个问题: Integer.parseInt会被传入一个""之后报错 java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:678) at java.base/java.lang.Integer.parseInt(Integer.java:786) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.util.LocalJsonUtil.StringToEntryMap(LocalJsonUtil.java:28) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.sync.VanillaSync.OnPlayerJoin(VanillaSync.java:59) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.sync.__VanillaSync_OnPlayerJoin_PlayerLoggedInEvent.invoke(.dynamic) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) at TRANSFORMER/forge@43.2.4/net.minecraftforge.event.ForgeEventFactory.firePlayerLoggedIn(ForgeEventFactory.java:765) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.players.PlayerList.m11261(PlayerList.java:246) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m143699(ServerLoginPacketListenerImpl.java:156) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m10055(ServerLoginPacketListenerImpl.java:143) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m9933(ServerLoginPacketListenerImpl.java:75) at TRANSFORMER/minecraft@1.19.2/net.minecraft.network.Connection.m129483(Connection.java:248) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerConnectionListener.m9721(ServerConnectionListener.java:143) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m5703(MinecraftServer.java:880) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.dedicated.DedicatedServer.m5703(DedicatedServer.java:292) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m5705(MinecraftServer.java:806) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m130011(MinecraftServer.java:654) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m206580(MinecraftServer.java:244) at java.base/java.lang.Thread.run(Thread.java:833)

mlus-asuka commented 1 year ago

然后在LocalJsonUtil.java:28行还有个问题: Integer.parseInt会被传入一个""之后报错 java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:678) at java.base/java.lang.Integer.parseInt(Integer.java:786) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.util.LocalJsonUtil.StringToEntryMap(LocalJsonUtil.java:28) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.sync.VanillaSync.OnPlayerJoin(VanillaSync.java:59) at TRANSFORMER/playersync@1.0/vip.fubuki.playersync.sync.__VanillaSync_OnPlayerJoin_PlayerLoggedInEvent.invoke(.dynamic) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) at TRANSFORMER/forge@43.2.4/net.minecraftforge.event.ForgeEventFactory.firePlayerLoggedIn(ForgeEventFactory.java:765) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.players.PlayerList.m11261(PlayerList.java:246) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m143699(ServerLoginPacketListenerImpl.java:156) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m10055(ServerLoginPacketListenerImpl.java:143) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerLoginPacketListenerImpl.m9933(ServerLoginPacketListenerImpl.java:75) at TRANSFORMER/minecraft@1.19.2/net.minecraft.network.Connection.m129483(Connection.java:248) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerConnectionListener.m9721(ServerConnectionListener.java:143) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m5703(MinecraftServer.java:880) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.dedicated.DedicatedServer.m5703(DedicatedServer.java:292) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m5705(MinecraftServer.java:806) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m130011(MinecraftServer.java:654) at TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m206580(MinecraftServer.java:244) at java.base/java.lang.Thread.run(Thread.java:833)

你看看新的Release能不能复现吧。我第一次测试也有报错。但是之前测试的时候是没问题的。然后准备调试的时候发现又没问题了,我也有点无语。另外成就部分已经修了。

mocksonline commented 1 year ago

稍后测试。另外建议blob换成MEDIUMBLOB,因为某些东西nbt加在一起可能会超过64 KB

mlus-asuka commented 1 year ago

稍后测试。另外建议blob换成MEDIUMBLOB,因为某些东西nbt加在一起可能会超过64 KB

背包超2KB。玩家会直接被踢出

mocksonline commented 1 year ago

稍后测试。另外建议blob换成MEDIUMBLOB,因为某些东西nbt加在一起可能会超过64 KB

背包超2KB。玩家会直接被踢出

不能超过2MB,其他部分都很好,但是我貌似无法同步聊天?不知道这个chatsync的目的是什么,同步所有聊天记录吗?但是在测试的时候是没有反馈的。

另外就是测试了确实是会有数据过大sql读写错误的情况(就是blob太小了,这个时候客户端也没有被踢出,服务端和客户端除了此模组其他的一个都没装)(写了一个很小的成书,退出的时候服务端就崩了):

mlus-asuka commented 1 year ago

上述问题已修复。

稍后测试。另外建议blob换成MEDIUMBLOB,因为某些东西nbt加在一起可能会超过64 KB

背包超2KB。玩家会直接被踢出

不能超过2MB,其他部分都很好,但是我貌似无法同步聊天?不知道这个chatsync的目的是什么,同步所有聊天记录吗?但是在测试的时候是没有反馈的。

另外就是测试了确实是会有数据过大sql读写错误的情况(就是blob太小了,这个时候客户端也没有被踢出,服务端和客户端除了此模组其他的一个都没装)(写了一个很小的成书,退出的时候服务端就崩了):

上述问题已修复