vectorwing / FarmersDelight

[Forge] A lightweight farming expansion for Minecraft.
MIT License
265 stars 165 forks source link

Player Unable to Join Server When Farmer's Delight is added to modlist #874

Closed BestTsar closed 4 months ago

BestTsar commented 5 months ago

Minecraft version

1.18.2

Farmer's Delight version

1.2.2 and 1.2.3

Forge version

40.2.0

Description

When farmer's delight is added to the modlist of my Spigot server, players are unable to join and are given the message

Internal Exception: io.netty.handler.codec.DecoderException:java.lang.IndexOutOfBoundsException: readerIndex(12) + length(1) exceeds writerIndex(12): PooledUnsafeDirectByteBuf(ridx: 12, widx: 12, cap: 12)

The server does not crash and the logs of the server only show that the player connects and immediately disconnects Server Disconnect

This mod has been isolated as the issue, the problem persists even if it is the only mod in the mod list. Loading into a single player world does not have any issues, it in only when joining a server

Steps to reproduce

  1. Installed a fresh spigot server for 1.18.2
  2. Add Farmers Delight for 1.18.2 to mods folder (issue occurs on both versions 1.2.2 and 1.2.3
  3. Join Server using localhost:25565
  4. Crash

Mod list

Farmers Delight

Rubidium has been previously used on the modlist, but the issue persists with only Farmers delight in the folder

Logs

Server Disconnect

Internal Exception: io.netty.handler.codec.DecoderException:java.lang.IndexOutOfBoundsException: readerIndex(12) + length(1) exceeds writerIndex(12): PooledUnsafeDirectByteBuf(ridx: 12, widx: 12, cap: 12)

Minimal instance

Performance and shader mods

BestTsar commented 5 months ago

Issue did not occur when a basic Forge Server was installed. If I am just dumb for attempting to use Spigot, we can leave this thread here

vectorwing commented 4 months ago

This smells like a similar issue we've dealt with in the past: https://github.com/vectorwing/FarmersDelight/issues/805

To sum it up: the issue isn't Spigot itself, but rather that Farmer's Delight has to extend a vanilla enum to implement its Recipe Book. Vanilla servers "freak out" because they don't expect the enum to be bigger, causing the connection error above.

ModernFix has since introduced a fix which may allow Spigot and similar server systems to ignore this extended data, thus letting players connect normally. I suggest adding it and seeing if it fixes the issue.

If not, feel free to repoen, or look into the issue I linked above for an alternative fix.