minekube / gate

High-Performance, Low-Memory, Lightweight, Extensible Minecraft Reverse Proxy with Excellent Multi-Protocol Version Support - Velocity/Bungee Replacement - Ready for dev and large deploy!
https://gate.minekube.com
Apache License 2.0
584 stars 50 forks source link

bug: packet id for type *packet.ResourcePackResponse in protocol 765 not registered in the ServerBound Login state registry #336

Open TheDevMinerTV opened 2 months ago

TheDevMinerTV commented 2 months ago

When using Player.SendResourcePack(), the client will send the ResourcePacketResponse packet during the login phase instead of during the configuration phase.

event.Subscribe(proxy.Event(), 0, func(e *proxy.PostLoginEvent) {
    e.Player().SendResourcePack(proxy.ResourcePackInfo{
        ID:          resourcePackUUID,
        URL:         "XXX",
        ShouldForce: true,
        Prompt: &component.Text{
            Content: util.Latinize("you are required to use this texturepack in csmc.dev"),
            S:       component.Style{Color: color.Yellow, Bold: component.True},
        },
    })
})

Logs:

2024-05-05T00:01:23.510Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=0,PacketType=*packet.StatusRequest,Payloadlen=1"}
2024-05-05T00:01:23.513Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=0,PacketType=*packet.StatusResponse,Payloadlen=0", "bytes": 3546}
2024-05-05T00:01:23.532Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=1,PacketType=*packet.StatusPing,Payloadlen=9"}
2024-05-05T00:01:23.532Z    DEBUG   java.client netmc/connection.go:255 update auto reading {"enabled": true}
2024-05-05T00:04:27.810Z    DEBUG   java.client.SetActiveSessionHandler netmc/connection.go:576 set session handler {"state": "Handshake", "handler": "*proxy.handshakeSessionHandler"}
2024-05-05T00:04:27.811Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=4,KnownPacket=true,PacketID=0,PacketType=*packet.Handshake,Payloadlen=23"}
2024-05-05T00:04:27.811Z    DEBUG   java.client netmc/connection.go:477 update state    {"previous": "Handshake", "new": "Login"}
2024-05-05T00:04:27.811Z    DEBUG   java.client.SetActiveSessionHandler netmc/connection.go:576 set session handler {"state": "Login", "handler": "*proxy.initialLoginSessionHandler"}
2024-05-05T00:04:27.811Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=0,PacketType=*packet.ServerLogin,Payloadlen=31"}
2024-05-05T00:04:27.812Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=1,PacketType=*packet.EncryptionRequest,Payloadlen=0", "bytes": 171}
2024-05-05T00:04:29.110Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=1,PacketType=*packet.EncryptionResponse,Payloadlen=261"}
2024-05-05T00:04:29.113Z    DEBUG   java.client.loginSession.authn.authnJoin.request    auth/authenticator.go:192   authenticating user against sessionserver   {"url": "https://sessionserver.mojang.com/session/minecraft/hasJoined?serverId=XXXXX&username=TheDevMinerTV"}
2024-05-05T00:04:29.266Z    DEBUG   java.client.loginSession.authn.authnJoin.request    auth/authenticator.go:219   user authenticated against sessionserver    {"onlineMode": true, "time": "152.950434ms", "statusCode": 200}
2024-05-05T00:04:29.266Z    INFO    java.client.authSession proxy/session_client_auth.go:99 player has connected, completing login  {"player": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062"}
2024-05-05T00:04:29.266Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=3,PacketType=*packet.SetCompression,Payloadlen=0", "bytes": 3}
2024-05-05T00:04:29.266Z    DEBUG   java.client netmc/connection.go:617 update compression  {"threshold": 256}
2024-05-05T00:04:29.267Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=2,PacketType=*packet.ServerLoginSuccess,Payloadlen=0", "bytes": 1146}
2024-05-05T00:04:29.268Z    DEBUG   java.client.SetActiveSessionHandler netmc/connection.go:576 set session handler {"state": "Login", "handler": "*proxy.authSessionHandler"}
2024-05-05T00:04:29.289Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=3,PacketType=*packet.LoginAcknowledged,Payloadlen=1"}
2024-05-05T00:04:29.290Z    DEBUG   java.client netmc/connection.go:477 update state    {"previous": "Login", "new": "Config"}
2024-05-05T00:04:29.290Z    DEBUG   java.client.SetActiveSessionHandler netmc/connection.go:576 set session handler {"state": "Config", "handler": "*proxy.clientConfigSessionHandler"}
2024-05-05T00:04:29.290Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=1,PacketType=*plugin.Message,Payloadlen=24"}
2024-05-05T00:04:29.290Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=0,PacketType=*packet.ClientSettings,Payloadlen=14"}
2024-05-05T00:04:29.291Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=7,PacketType=*packet.ResourcePackRequest,Payloadlen=0", "bytes": 215}
2024-05-05T00:04:29.291Z    DEBUG   java.client netmc/connection.go:314 queued packet   {"packet": "*bossbar.BossBar"}
2024/05/05 00:04:29 Chose server lobby-2 for player e0bf4142-017b-42bc-b935-691ad69ca062
2024-05-05T00:04:29.299Z    DEBUG   java.client.player.serverConn   proxy/server.go:364 dialing backend server...   {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "serverName": "lobby-2", "serverAddr": "10.42.1.183:25565"}
2024-05-05T00:04:29.299Z    DEBUG   java.client.player.serverConn   proxy/server.go:378 connected to server {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "serverName": "lobby-2", "serverAddr": "10.42.1.183:25565"}
2024-05-05T00:04:29.300Z    DEBUG   java.client.server.SetActiveSessionHandler  netmc/connection.go:576 set session handler {"state": "Handshake", "handler": "*proxy.backendLoginSessionHandler"}
2024-05-05T00:04:29.300Z    DEBUG   java.client.server.AddSessionHandler    netmc/connection.go:550 added session handler   {"state": "Login", "handler": "*proxy.backendLoginSessionHandler"}
2024-05-05T00:04:29.300Z    DEBUG   java.client.player.serverConn   proxy/server.go:410 establishing player connection with server...   {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "serverName": "lobby-2", "serverAddr": "10.42.1.183:25565"}
2024-05-05T00:04:29.300Z    LEVEL(-2)   java.client.server.encoder  codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=4,KnownPacket=true,PacketID=0,PacketType=*packet.Handshake,Payloadlen=0", "bytes": 23}
2024-05-05T00:04:29.300Z    DEBUG   java.client.server  netmc/connection.go:477 update state    {"previous": "Handshake", "new": "Login"}
2024-05-05T00:04:29.300Z    DEBUG   java.client.server.SwitchSessionHandler netmc/connection.go:596 session handler already active, no need to switch   {"state": "Login", "handler": "*proxy.backendLoginSessionHandler"}
2024-05-05T00:04:29.300Z    LEVEL(-2)   java.client.server.encoder  codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=0,PacketType=*packet.ServerLogin,Payloadlen=0", "bytes": 31}
2024-05-05T00:04:29.318Z    LEVEL(-2)   java.client.decoder codec/decoder.go:97 decoded packet  {"context": "PacketContext:direction=ServerBound,Protocol=765,KnownPacket=true,PacketID=5,PacketType=*packet.ResourcePackResponse,Payloadlen=18"}
2024-05-05T00:04:29.318Z    DEBUG   java.client.server.reader   netmc/reader.go:64  error reading packet, closing connection    {"error": "error reading packet frame: error reading varint: read tcp 10.42.0.199:55432->10.42.1.183:25565: use of closed network connection"}
2024-05-05T00:04:29.318Z    DEBUG   java.client.server  netmc/connection.go:255 update auto reading {"enabled": true}
2024-05-05T00:04:29.318Z    DEBUG   java.client.server  netmc/connection.go:351 error writing packet, closing connection    {"bufferPacket": "*packet.ResourcePackResponse", "error": "packet id for type *packet.ResourcePackResponse in protocol 765 not registered in the ServerBound Login state registry"}
2024-05-05T00:04:29.318Z    DEBUG   java.client netmc/connection.go:314 queued packet   {"packet": "*packet.ResourcePackResponse"}
2024-05-05T00:04:29.318Z    DEBUG   java.client.player  proxy/switch.go:161 could not connect player to server  {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "serverName": "lobby-2", "serverAddr": "10.42.1.183:25565", "error": "The connection to the remote server was unexpectedly closed."}
2024-05-05T00:04:29.318Z    INFO    java.client.player  proxy/switch.go:174 unable to connect to server {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "serverName": "lobby-2", "serverAddr": "10.42.1.183:25565", "error": "The connection to the remote server was unexpectedly closed."}
2024-05-05T00:04:29.318Z    LEVEL(-2)   java.client.encoder codec/encoder.go:100    encoded packet  {"context": "PacketContext:direction=ClientBound,Protocol=765,KnownPacket=true,PacketID=1,PacketType=*packet.Disconnect,Payloadlen=0", "bytes": 77}
2024-05-05T00:04:29.318Z    DEBUG   java.client.reader  netmc/reader.go:64  error reading packet, closing connection    {"error": "error reading packet frame: error reading varint: read tcp 10.42.0.199:25565->95.89.152.169:56594: use of closed network connection"}
2024-05-05T00:04:29.318Z    DEBUG   java.client netmc/connection.go:255 update auto reading {"enabled": true}
2024-05-05T00:04:29.318Z    INFO    java.client.player  proxy/player.go:625 player has been disconnected    {"name": "TheDevMinerTV", "id": "e0bf4142-017b-42bc-b935-691ad69ca062", "reason": "§cUnable to connect to \"lobby-2\". Try again later."}