CloudburstMC / Protocol

A protocol library for Minecraft Bedrock Edition
https://git.io/ProtocolLib
Apache License 2.0
322 stars 94 forks source link

BDS CompressedBiomeDefinitionListSerializer_v582 deserialize/serialize error #261

Open romanalexander opened 2 months ago

romanalexander commented 2 months ago

Somewhere around protocol 729 the CompressedBiomeDefinitionList packet got changed(?) and won't byte-for-byte serialize correctly, causing vanilla BDS to disconnect. Observed on client v1.21.30

Reproduce: On latest head try to connect through BDS via ProxyPass with packet reserializing Client will disconnect with Broken Packet unless you bypass deserializer for CompressedBiomeDefinitionList

Kaooot commented 2 months ago

I'm not aware of any changes to CompressedBiomeDefinitionListPacket in v729 and it worked fine for me when I used the latest ProxyPass version with changed codec for v729.

romanalexander commented 2 months ago

I just retested on https://github.com/CloudburstMC/Protocol/commit/b315ef68d2605fc2e345dc4390f457619a8c3684 this still occurs. On BDS 1.21.30.25, client version 1.21.30

Flat world won't send any compressed biome data, only a vanilla singleplayer world will.

Alemiz112 commented 2 months ago

I was able to repro this. Will investigate soon.

romanalexander commented 2 months ago

attached is the state of the bytebuffer bidirectionally packetlog.zip the serialized data is much larger than what BDS sends