PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
9.73k stars 2.27k forks source link

ServerboundResourcePackPacket #10287

Open LouiLetsPlayPro opened 7 months ago

LouiLetsPlayPro commented 7 months ago

Stack trace

 [Server thread/ERROR]: Failed to handle packet ServerboundResourcePackPacket[id=dd25ca51-a842-39b9-a470-e9fec7e601d3, action=DECLINED], suppressing error
java.lang.IllegalStateException: Unexpected request for task finish, current task: join_world, requested: server_resource_pack
    at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.finishCurrentTask(ServerConfigurationPacketListenerImpl.java:168) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.handleResourcePackResponse(ServerConfigurationPacketListenerImpl.java:102) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.network.protocol.common.ServerboundResourcePackPacket.handle(ServerboundResourcePackPacket.java:20) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.network.protocol.common.ServerboundResourcePackPacket.a(ServerboundResourcePackPacket.java:9) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[?:?]
    at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1455) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
    at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1432) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1355) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1547) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1216) ~[paper-1.20.4.jar:git-Paper-409]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-409]
    at java.lang.Thread.run(Thread.java:840) ~[?:?]

Plugin and Datapack List

ForceResourcepacks v. 1.12.9 (build 708) [Installed on Waterfall side]

Actions to reproduce (if known)

  1. Have the ForceResourcepacks plugin installed on the Waterfall server.
  2. Configure ForceResourcepacks using the key.yml & config.yml of the proxy.
  3. Ensure that the player has previously received the resource pack (UUID of player is stored in players.yml with associated resource pack).
  4. Set Server Resource Packs to Disabled.
  5. Have the player join the server again.

Paper version

Other

Workaround:

Manually delete the UUID of the player from players.yml along with the associated resource pack, then reload the plugin. This workaround resolves the issue temporarily.

Notes:

This issue occurs specifically when the player has previously received the resource pack and joins the server with Server Resource Packs disabled. The error stems from incomplete transmission of resource pack data to the client on the sub-server side, where the server cannot handle the incomplete data properly. The recommended solution involves installing ForceResourcepacks on the sub-server and configuring it with the key.yml & config.yml of the proxy to ensure proper handling of resource pack data transmission via the internal Plugin Messaging Channel, this allowing the plugin to ignore the incomplete data.

electronicboy commented 7 months ago

This would sound purely like a bungeecord issue?

LouiLetsPlayPro commented 7 months ago

I doubt it a little because the error only occurs on the backend server and not on the Waterfall server