Closed gioiann closed 5 years ago
I'll see if I can put something in place to cater for that.
https://github.com/Sandertv/gophertunnel/blob/master/minecraft/conn.go#L745
This check also causes problems if a resource pack is wrongly sent as a behaviour pack by the server
pack.HasBehaviours() == hasBehaviours
You should try to join play.insomniape.eu:19132
Just a question, is the pack expected to be a resource pack or a behaviour pack? I don't know how to handle it.
It's a resource pack which is also sent as a behaviour pack, as explained in my first comment
It's not a behaviour pack but it's wrongly sent in the behaviourpacks entries so pack.HasBehaviours()
is false and hasBehaviours
is true
Some servers (
play.insomniape.eu:19132
) will send a ResourcePacksInfo packet with a Resource and Behaviour pack having the same UUID and the same size (likely the same pack wrongly sent as both resource and behaviour)The client will only really download a resource pack, display no error and proceed with the normal spawning sequence
gophertunnel instead when receiving the ResourcePacksInfo sends the server a ResourcePackClientResponse(ResponseSendPacks) having the same pack UUID twice. This will make the server send the same ResourcePackDataInfo twice causing this error:
unknown pack to download with UUID ...
I understand this is completely the server's fault. It's up to you deciding if you want to make gophertunnel closer to the Minecraft behaviour or not. I already fixed the issue myself in an hacky way. In case you want to know how, just ask.