Shulker Box Tooltip [Fabric/Forge/NeoForge]

Shulker Box Tooltip [Fabric/Forge/NeoForge]

7M Downloads

Invalid Payload in version 2.0.0 Minecraft 1.15.2

DemonInTheCloset opened this issue ยท 6 comments

commented

Issue Description:

Spigot Server rejects connection with Invalid Payload error message

What happens:

When connecting to a Spigot 1.15.2 Server with the mod installed, the error Invalid Payload appears

What you expected to happen:

The connection works but the Ender Chest preview option should automatically turn off.

Steps to reproduce:

  1. Install new 2.0.0 version on 1.15.2
  2. Connect to Spigot server

Affected Versions (Do not use "latest"):

  • ShulkerBoxTooltip: 2.0.0
  • Minecraft: 1.15.2
  • Fabric Loader: 0.8.2 build 194
  • Fabric API: 0.5.1+build.294-1.15
commented

Can confirm, some servers kick me out because of that. Got a stacktrace too:

[18:44:22] [Server thread/ERROR]: Couldn't register custom payload
org.bukkit.plugin.messaging.ChannelNameTooLongException: Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is 32 chars (attempted 37 - 'shulkerboxtooltip:handshake_to_client.
        at org.bukkit.plugin.messaging.StandardMessenger.validateAndCorrectChannel(StandardMessenger.java:500) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer.addChannel(CraftPlayer.java:1233) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:2453) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.PacketPlayInCustomPayload.a(SourceFile:44) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.PacketPlayInCustomPayload.a(SourceFile:9) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895) [server.jar:git-Spigot-ae72bf4-183139d]
        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828) [server.jar:git-Spigot-ae72bf4-183139d]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
[18:44:22] [Server thread/INFO]: username lost connection: Invalid payload REGISTER!

The real question is - why does this plugin even contact the server? Shulker box contents are client-side anyway...

commented

The mod sends packets to the server to allow ender chest previews,
The problem is that spigot restricts packets ids to be under 32 characters

commented

How about the server communicating with the client instead? By MOTD or similar.

commented

That wouldn't change the issue, the server would send a packet to the client, the client responds and register channels, causing the connection to fail.

commented

This should fix the issue, I will release the fix to curseforge soon

commented

The 2.0.1 release is available at curseforge!