Ladysnake / PlayerAbilityLib

It's your new pal!
GNU Lesser General Public License v3.0
13 stars 8 forks source link

Attempting to load a world in 1.19.2 causes an "Invalid player data" disconnect #21

Open ImplicitSaber opened 9 months ago

ImplicitSaber commented 9 months ago

Attempting to load a world in 1.19.2 with PAL loaded causes a disconnect with the message "Invalid player data". Checking the console shows a CrashException caused by a NoSuchMethodException:

net.minecraft.util.crash.CrashException: Loading entity NBT
    at net.minecraft.entity.Entity.readNbt(Entity.java:2117) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.PlayerManager.loadPlayerData(PlayerManager.java:298) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.PlayerManager.onPlayerConnect(PlayerManager.java:161) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.network.ServerLoginNetworkHandler.addToServer(ServerLoginNetworkHandler.java:179) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.network.ServerLoginNetworkHandler.acceptPlayer(ServerLoginNetworkHandler.java:167) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.network.ServerLoginNetworkHandler.redirect$zbh000$fabric-networking-api-v1$handlePlayerJoin(ServerLoginNetworkHandler.java:563) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.network.ServerLoginNetworkHandler.tick(ServerLoginNetworkHandler.java:99) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.network.ClientConnection.tick(ClientConnection.java:279) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo.java:154) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:839) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:784) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:93) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:643) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:278) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoSuchMethodError: 'net.minecraft.nbt.NbtList net.minecraft.nbt.NbtCompound.method_10554(java.lang.String, int)'
    at net.minecraft.server.network.ServerPlayerEntity.handler$zcb000$playerabilitylib$readAbilitiesFromTag(ServerPlayerEntity.java:2273) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.server.network.ServerPlayerEntity.readCustomDataFromNbt(ServerPlayerEntity.java:317) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]
    at net.minecraft.entity.Entity.readNbt(Entity.java:2104) ~[minecraft-merged-project-root-1.19.2-net.fabricmc.yarn.1_19_2.1.19.2+build.28-v2.jar:?]

The stacktrace references a mixin included by PAL, it appears that it is line 123 of ServerPlayerEntityMixin calling tag.method_10554("playerabilitylib:abilities", NbtType.COMPOUND) instead of remapping to tag.getList("playerabilitylib:abilities", NbtType.COMPOUND). However, it may just be a quirk of the my development environment.

Versions

PAL: 1.6.0 Fabric Loader: 0.15.2 Fabric API: 0.77.0+1.19.2 Yarn Mappings: 1.19.2+build.28

ImplicitSaber commented 9 months ago

Update: the bug only happens in a development environment.