CloudburstMC / Protocol

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

Problems with packet decompression while connecting from beta version #31

Closed donatexyz closed 4 years ago

donatexyz commented 4 years ago

Hello, I added v402 codec to NukkitX 2.0. When I trying to connect from 1.16.x, I catched this problem:

22:10:43 [ERROR] An exception occurred in RakNet
java.lang.RuntimeException: Unable to inflate buffer data
    at com.nukkitx.protocol.bedrock.compressionhandler.DefaultBedrockCompressionHandler.decompressPackets(DefaultBedrockCompressionHandler.java:83) ~[bedrock-common-2.5.4.jar:?]
    at com.nukkitx.protocol.bedrock.compressionhandler.DefaultBedrockCompressionHandler.decompressPackets(DefaultBedrockCompressionHandler.java:19) ~[bedrock-common-2.5.4.jar:?]
    at com.nukkitx.protocol.bedrock.BedrockSession.onWrappedPacket(BedrockSession.java:277) ~[bedrock-common-2.5.4.jar:?]
    at com.nukkitx.protocol.bedrock.BedrockRakNetSessionListener.onEncapsulated(BedrockRakNetSessionListener.java:28) ~[bedrock-common-2.5.4.jar:?]
    at com.nukkitx.network.raknet.RakNetSession.onEncapsulatedInternal(RakNetSession.java:301) ~[raknet-1.6.16.jar:?]
    at com.nukkitx.network.raknet.RakNetSession.onOrderedReceived(RakNetSession.java:428) ~[raknet-1.6.16.jar:?]
    at com.nukkitx.network.raknet.RakNetSession.checkForOrdered(RakNetSession.java:406) ~[raknet-1.6.16.jar:?]
    at com.nukkitx.network.raknet.RakNetSession.onRakNetDatagram(RakNetSession.java:394) ~[raknet-1.6.16.jar:?]
    at com.nukkitx.network.raknet.RakNetSession.onDatagram(RakNetSession.java:273) ~[raknet-1.6.16.jar:?]
    at com.nukkitx.network.raknet.RakNetServer$ServerDatagramHandler.channelRead(RakNetServer.java:288) ~[raknet-1.6.16.jar:?]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:93) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) ~[netty-transport-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) ~[netty-common-4.1.43.Final.jar:4.1.43.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.43.Final.jar:4.1.43.Final]
    at java.lang.Thread.run(Thread.java:835) [?:?]
Caused by: java.util.zip.DataFormatException: No zlib header
    at com.nukkitx.protocol.util.Zlib.inflate(Zlib.java:32) ~[common-2.5.4.jar:?]
    at com.nukkitx.protocol.bedrock.compressionhandler.DefaultBedrockCompressionHandler.decompressPackets(DefaultBedrockCompressionHandler.java:64) ~[bedrock-common-2.5.4.jar:?]
    ... 24 more

And I tested it on different versions (chanched field protocolVersion to 392...401)

SupremeMortal commented 4 years ago

The 1.16 branch is not anywhere near ready for use. When it gets merged into the develop branch, it will be considered somewhat stable.