gnembon / fabric-carpet

Fabric Carpet
MIT License
1.65k stars 261 forks source link

Server says: "Client disconnected with reason: Internal Exception: io.netty.handler.codec.DecoderException: Not a compound tag: 10b" #1866

Open LingYingawa opened 5 months ago

LingYingawa commented 5 months ago

When I using Minecraft 1.20.2 with carpet-1.4.121 join a server with 1.20.1 by viafabric. I can not join the server and it says:"Client disconnected with reason: Internal Exception: io.netty.handler.codec.DecoderException: Not a compound tag: 10b"

If i delete carpet mod, it works.

Perhaps the carpet on the client is higher than the version on the server, which leads to this problem? I'm not sure.

My log is no problem. It only says: "[00:29:51] [Render thread/WARN]: Client disconnected with reason: Internal Exception: io.netty.handler.codec.DecoderException: Not a compound tag: 10b"

sakura-ryoko commented 5 months ago

FYI minecraft 1.20.1 and 1.20.2 the networking API is different, so naturally viafabric might not work, due to the protocol being different.

LingYingawa commented 5 months ago

FYI minecraft 1.20.1 and 1.20.2 the networking API is different, so naturally viafabric might not work, due to the protocol being different.仅供参考,minecraft 1.20.1 和 1.20.2 的网络 API 不同,因此由于协议不同,viafabric 自然可能无法工作。

Thanks for your reply.

But I can join the servers without carpet and the servers more than 1.20.2. So I don't think this is caused by differences of networking API.

altrisi commented 5 months ago

There is a difference in the main Carpet packet between those versions, which I think is what's causing this issue. ViaFabric doesn't know about Carpet so it can't translate it.

As a quick workaround you can run without Carpet on the client, or set the rule superSecretSetting to true on the server (one of the things it does is disables all Carpet networking, which means it won't sync tick freeze, some rules that work a bit better when client knows, or scarpet shapes/text).

The "best" solution if you're not going to connect to newer servers (or you choose the carpet version on them to this) could be to apply the patch from #1837 on top of the 1.20.2 branch, that should still be compatible (though hasn't been very tested). It tries to get the same format as the older versions, so you'd get full features on old servers (or servers with that patch).

Or use the same minecraft version as the server of course.