Earthcomputer / multiconnect

A mod to connect to multiple Minecraft server versions
Other
458 stars 52 forks source link

Joining Subserver as 1.13.2 Kicks for Invalid Payload REGISTER #81

Closed leumasme closed 4 years ago

leumasme commented 4 years ago

Using Only Multiconnect, no other mods. Joining gommehd.net (viaversion 1.8-1.16 server) as 1.13.2, then joining the citybuild subserver (1.13.2/1.14.? only) kicks back to lobby. The server sends the message "Invalid Payload REGISTER!"

leumasme commented 4 years ago

This only seems to happen with Fabric API installed. I had said "no other mods" because i didn't regard fabric api as an actual mod and just as a dependency, didn't know that multiconnect does not depend on it.

Username404-59 commented 4 years ago

Why are you trying to connect to gommehd if it's 1.8-1.16 compatible?

Anyway I think that sending the logs could help earthcomputer :coffee:

Earthcomputer commented 4 years ago

So turns out this was https://github.com/FabricMC/fabric/issues/849, which happens with or without multiconnect installed. Basically fabric API is sending a custom payload packet which old versions of Spigot consider to be invalid. However I added a workaround in mutliconnect, by blocking non-vanilla serverbound custom payload packets if the server is not on the same version as the client. This is something which should be done anyway, as clientside mods unknowingly communicating with a server on the wrong version is a recipe for disaster, and this blocking was already implemented in the server-to-client direction. I added an API for clientside mods to bypass this block if they want to explicitly communicate with older servers.

I tested my fix on this server and I was able to join the subserver with fabric API installed.