跳到正文

SerializerDebug

作者:darimus

自动修复“未知序列化器类型 xxx”错误

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

该模组会尝试自动修复“Unknown serializer type 110”或其他类似错误。客户端和服务器端都必须安装此模组。  

 

 

这些错误的根本原因是,服务器和客户端会为特定的“序列化器”分配 ID 编号。如果客户端和服务器端的编号不一致,就会报错“unknown serializer type”。  

 

安装此模组后,你应该就能成功连接到服务器。

 

 

此模组主要是为修复 Cobblemon 的一个漏洞而开发,但也应该适用于任何存在序列化器不同步问题的模组。  

 

默认情况下,此模组会在客户端和服务器端记录序列化器 ID/对象对应关系。如果存在不同步,你通常可以根据日志找出问题所在。

它还会尝试在客户端自动修正此错误。  

 

此模组的配置包含以下选项:

“忽略序列化器错误”:

默认为 FALSE——启用后,此选项会强制忽略序列化器错误,因此不会再出现“unknown serializer type”错误。除非其他方法都无效,否则不建议开启此选项。

 

“仅显示错误”:

默认为 TRUE——关闭后,会详细打印发生的所有实体 ID 序列化信息。开启后,则只会在检测到错误时打印信息。

 

“重新排序客户端 ID”:

默认为 TRUE——此选项会尝试在客户端自动修复不同步问题。玩家登录时,服务器会将其序列化器列表发送给客户端,客户端随后会重新排列自己的内部序列化器列表,使其与服务器一致。如果数据包送达,客户端日志会显示日志语句:“Handle ClientboundSerializerSyncPacket”。如果该数据包与客户端不一致,客户端就会重新排列序列化器。此操作会记录为“Init remap:”。如果你在日志中看到这条语句,就说明客户端和服务器端曾经不同步,并且客户端已自动调整为与服务器一致。

以下是修复 Cobblemon 时的实际日志示例。Cobblemon 经常会出现此错误:

[27Dec2024 14:26:17.924] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remapping process using server data, size=51
[27Dec2024 14:26:17.925] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remap: from clientId=29 to serverId=28 for server className=com.cobblemon.mod.common.api.net.serializers.Vec3DataSerializer
[27Dec2024 14:26:17.925] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remap: from clientId=30 to serverId=29 for server className=com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
[27Dec2024 14:26:17.926] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remap: from clientId=31 to serverId=30 for server className=com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
[27Dec2024 14:26:17.926] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remap: from clientId=32 to serverId=31 for server className=com.cobblemon.mod.common.api.net.serializers.IdentifierDataSerializer
[27Dec2024 14:26:17.926] [Netty Client IO #10/ERROR] [net.minecraft.network.syncher.EntityDataSerializers/]: [SerializerDebug] Init remap: from clientId=28 to serverId=32 for server className=com.bobmowzie.mowziesmobs.server.ServerProxy$1

常见问题

SerializerDebug 支持哪些 Minecraft 版本?

SerializerDebug 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

SerializerDebug 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

darimus 的其他作品

查看全部 →