Hello there,
a more network heavy question here but I hope you guys can help me.
I need to find a way to get the Forge client to renegotiate all its Handshake data during play state. (Don't worry about the server here, all i care about is the client)
This was possible starting with Forge for Minecraft 1.4.7 and possibly even earlier.
I presume that the version where this was changed was with Forge for Minecraft 1.13 when Mojang added 2 Packets during the login state for custom data exchange.
In Minecraft 1.12 and 1.10 one could send packet 0x18 during play to the client on the channel "FML|HS" with the following payload
new byte[]{-2}
In Minecraft 1.7 this was almost identical but was
new byte[]{-2, 0}
In Minecraft 1.6.4 and 1.4.7 this was (on the Channel FML with Packet 250 Custom Payload)
new byte[]{0, 0, 0, 0, 0, 2}
Afterwards it was more or less straight forward anything sent by the client on the channel "FML|HS" or "REGISTER" was part of the forge handshake.
So how would one go about doing this in 1.16.4?
I presume it is impossible to get the client from the play state back into the login state,
so I kinda need a way to trigger this via a Packet 0x17 (just as seen above)
and then subsequently send/receive this exact data by using Packet 0x17 (server->client) and Packet 0x0B (client->server) during play state.
I have looked through the Minecraft Forge Source code for 1.16 but was unable to find the info.
So I am wondering, is this still possible or was this feature just straight up cut from the Network Protocol?
Any Information regarding this would be much appreciated.