CloudburstMC / Protocol

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

fix: some servers sent -1 for default player permission #195

Open hax0r31337 opened 1 year ago

hax0r31337 commented 1 year ago

Some servers like Mineplex sent -1 for default player permission

Caused by: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 4
    at org.cloudburstmc.protocol.bedrock.codec.v567.serializer.StartGameSerializer_v567.readLevelSettings(StartGameSerializer_v567.java:97)
    at org.cloudburstmc.protocol.bedrock.codec.v428.serializer.StartGameSerializer_v428.deserialize(StartGameSerializer_v428.java:62)
    at org.cloudburstmc.protocol.bedrock.codec.v440.serializer.StartGameSerializer_v440.deserialize(StartGameSerializer_v440.java:23)
    at org.cloudburstmc.protocol.bedrock.codec.v527.serializer.StartGameSerializer_v527.deserialize(StartGameSerializer_v527.java:24)
    at org.cloudburstmc.protocol.bedrock.codec.v544.serializer.StartGameSerializer_v544.deserialize(StartGameSerializer_v544.java:21)
    at org.cloudburstmc.protocol.bedrock.codec.v544.serializer.StartGameSerializer_v544.deserialize(StartGameSerializer_v544.java:11)
    at org.cloudburstmc.protocol.bedrock.codec.BedrockCodec.tryDecode(BedrockCodec.java:57)
    ... 89 more
onebeastchris commented 7 months ago

The same issue appears to occur with authorative movement. E.g. Hive sends a value of -1, which causes a similar issue with Protocol when that's being deserialized into an enum :/