Bixilon/Minosoft

Multiple bugs I found

Polarite opened this issue ยท 28 comments

While playing hypixel, theres two bugs I noticed, screen is... yellow... all yellow.
entering a gui then changing that gui after that clicking on anything in second gui doesnt work

  • PlayerProperties: extraData
  • 1.18: Fix chunk packet reading on hypixel: ArrayOutOfBoundsException
  • Fix container second gui

Don't do that. Not on hypixel. it bans you. I am serious.
photo_2022-05-07_17-37-33

I am currently working on speedrunning and I also experienced the container bug. Working on it in some days :) I'll keep you notified.

Do you mean the sky? That could be because biome data is missing...hm

For physics I already started reimplementing it (https://gitlab.bixilon.de/bixilon/minosoft/-/tree/work/physics/rewrite), but that is still crap.

no the whole screen is yellow.

Can you send a screenshot? I don't know why the screen is yellow.... Is it working on other servers?

Yes, that is the sky. means missing sky/biome color. You can also see it in F3. No clue why this is happening, you are probably on 1.18.2?

The scoreboard also seems broken.

Are there any errors in the console? like exceptions?

yep this is 1.18.2 but I am scared to join again after seeing your ban :p

seems like I cant move neither

In the 3rd line w=0 means that no chunks got received from the server. Are there any chunk parsing bugs?

(That explains the yellow sky, the blocked movement and probably a ton more)

https://paste.ee/p/7EANq
errors get too long and old errors get deleted but thats what I could get

https://i.imgur.com/Js2KZb1.jpeg

cubecraft seems fine..?

[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN] de.bixilon.minosoft.protocol.network.network.client.exceptions.PacketReadException
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.network.network.client.pipeline.encoding.PacketDecoder.decode(PacketDecoder.kt:64)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.network.network.client.pipeline.encoding.PacketDecoder.decode(PacketDecoder.kt:35)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at java.base/java.lang.Thread.run(Thread.java:833)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN] Caused by: java.lang.IllegalArgumentException: Unknown player property extraData
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer.readPlayerProperties(PlayInByteBuffer.kt:235)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.packets.s2c.play.tab.TabListS2CP.<init>(TabListS2CP.kt:45)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.packets.factory.factories.ReflectionFactory.createPacket(ReflectionFactory.kt:34)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.network.network.client.pipeline.encoding.PacketDecoder.readPacket(PacketDecoder.kt:76)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   at de.bixilon.minosoft.protocol.network.network.client.pipeline.encoding.PacketDecoder.decode(PacketDecoder.kt:54)
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]   ... 35 more
[2022-05-07 20:37:57.770] [Nio#3] [NETWORK_PACKETS_IN] [WARN]

theres this error tho, not sure if it matters

Yes, the chunk packet fails to read... Beacause of ArrayIndexOutOfBoundsException. Sadly the stack trace is hidden? Strange.

I suspect that hypixel is sending some kind of custom dimension height in 1.18 and minosoft has something wrong at 1 place and the section index gets calculated wrong. That problem should not exist in 1.16. I'll take a look at this soon.

The crash you just sent is something different, but also interesting. No clue what extraData is, I'll make this a warning, not a crash.

(But thanks for testing, hope you won't get banned and reporting those issues)

I got in my alt account, shouldnt be an issue even if I got banned, hmu if you need any more testing

https://i.imgur.com/pyxp6uy.jpeg

heads up about 1.16 hypixel works as intended.

Yes, that looks a lot better

theres this error tho, not sure if it matters

What did you do to get the extraData error? I am (silently) ignoring this error, it gets logged into the console. Also I fixed some tab list issues on cubecraft.

enter game, wander in guis, look around walk around

GeyserMC/MCProtocolLib#684 (comment)
noticed geysermc also having same issues, might be helpful idk

No, I don't think that is related (but thanks for the research!). I fixed light reading with custom dimension height. I was able to see some errors there, if the minimum height > 0. Feel free to test again, not my resposibility :) (and feel free to tick off the task, I edited your inital message)

I'll take a look at the container bug later

(ah: and if you test again, try to catch the execption)

will test it out.

is there a way to log stuff, terminal deletes old logs if it gets too long

also you added windows builder, thanks! that makes stuff a bit easier for me!

will test it out.

is there a way to log stuff, terminal deletes old logs if it gets too long

not yet, logs are quite long. You could increase the terminal buffer size or just quickly kill minosoft

also you added windows builder, thanks! that makes stuff a bit easier for me!

yes, just for you :)

great will test out soon :>

https://i.imgur.com/UlTyCVo.png
sadly its still a thing

Interesting. The stack trace seems to be missing something. ChunkUtil.kt only has 306 lines, not 310. I suspect the PalettedContainer function to be wrong, it is a inline function. damn. This crash is kind of useless.

The question is: What causes the issue. Is it an empty biome data array or empty block data array? Biomes got changed in 1 snapshot after 1.17.1. Is it also happening on 1.17.1? I think vanilla is silently ignoring empty arrays and hypixel is sending shit.

Maybe that geyser bug is related