Sending directly after the PacketLoginInStart packet (like online mode would do) causes the same client error (maybe because the compression start is sent within the same tick and the client still enables compression faster than handling the encryption packet). I assume a compression error, like the packet is sent uncompressed (because it's normally sent before the compression start), but the client awaits compressed packets (because the compression start packet is already sent). I tried to use ProtocolLib to send it immediately after the PacketLoginOutSuccess, this causes the client to disconnect by a client error "Packet was larger than expected". Schedule the packet (PacketLoginOutEncryptionBegin) Taken from .YggdrasilMinecraftSessionService.hasJoinedServer(GameProfile, String, InetAddress) captured by ProtocolLib PacketEvent (_BEGIN) PacketLoginInEncryptionBegin packet = // e.g. This is the client packet you need to capture: Taken from 1_13_R2.LoginListener.a(PacketLoginInEncryptionBegin) Of Course you can send the PacketLoginOutEncryptionBegin, if the server doesn't, to receive a PacketLoginInEncryptionBegin from the client to generate the hash and do the HTTP GET. S -> C | 1_13_R2.PacketLoginOutSetCompressionĪs you can see the needed packet PacketLoginInEncryptionBegin is not received, because the server sends no PacketLoginOutEncryptionBegin. > OFFLINE S | 1_13_R2.PacketHandshakingInSetProtocol S -> C | 1_13_R2.PacketLoginOutEncryptionBegin S | 1_13_R2.PacketLoginInEncryptionBegin C | 1_13_R2.PacketLoginOutSetCompression > ONLINE S | 1_13_R2.PacketHandshakingInSetProtocolĬ -> S | 1_13_R2.PacketLoginInStart Check the packets sent in online-mode and offline-mode, then compare them: It contains the client shared secret needed for the hash.Ģ. Click to expand.The "second Encryption Response" is the PacketLoginInEncryptionBegin.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |