gophertunnel icon indicating copy to clipboard operation
gophertunnel copied to clipboard

Packet Reordering + Dynamic Game Version Override (Dialer)

Open luuma-e opened this issue 9 months ago • 2 comments

Feature: Dynamic Game Version Override

I added a system that lets the client use specific Minecraft versions for different servers. The implementation allows for exact matches or regex patterns against server addresses.

dialer := minecraft.Dialer{ BaseGameVersion: map[string]string{ ".*\\.hivebedrock\\.network": "1.17.0", "play\\.example\\.com": "1.19.0", }, }

This helps maintain compatibility with servers that require specific game versions without needing code changes.

Feature: Packet Reordering

The commit reorganizes packet ordering in gophertunnel to more precisely mimic a genuine Minecraft client. This change helps evade anticheat systems that flag non-standard packet sequences.

The modifications ensure:

  1. ClientCacheStatus is sent before SetLocalPlayerAsInitialized
    
  2. Critical server packets are received before sending RequestChunkRadius
    
  3. Packets follow the exact sequence: RequestChunkRadius → Interact → PlayerAuthInput → SetLocalPlayerAsInitialized
    
  4. PlayerAuthInput is only sent after receiving StartGame
    

These changes are essential because modern anticheat systems detect unofficial clients by checking packet timing and order. By replicating the exact behavior of an official client, gophertunnel can connect to protected servers without triggering these security mechanisms.

luuma-e avatar Apr 12 '25 08:04 luuma-e

Please keep all comments in English, thank you.

Sandertv avatar Apr 13 '25 17:04 Sandertv

لا حاجة ، أصلي من أجلك

did I ask for your opinion ? No, I don't think so, thank you

luuma-e avatar Apr 13 '25 17:04 luuma-e