Forge VoxelMap (1.13.2 - 1.16.3) doesn't recognize worlds
turikhay opened this issue · 1 comments
turikhay commented
Explanation and fix
VoxelMap on Forge 1.13.2 - 1.16.4 sends ambiguous request packet.
By default, we send a standard response, which is supported by later versions of VoxelMap, but in this case the mod expects different response.
If you use older VoxelMap versions, please install ProtocolLib alongside MapModCompanion in your Bukkit/Spigot/Paper server.
Original issue
Fabric versions work fine
Confirmed Minecraft versions:
- 1.13.2
- 1.14.4
- 1.15.2
- 1.16.1
- 1.16.2
- 1.16.3
Client
[19:11:06.835] [Client thread/INFO] [STDERR/]: [com.mamiyaotaru.voxelmap.forgemod.WorldIDPacket:decode:45]: Failed to read message: java.lang.IndexOutOfBoundsException: readerIndex(2) + length(42) exceeds writerIndex(7): PooledUnsafeDirectByteBuf(ridx: 2, widx: 7, cap: 7)
Server
tests_e2e-proxy-1 | [19:11:06 INFO] [MapModCompanion - worldinfo:world_id]: [worldinfo:world_id] Data sent from turikhay to net.md_5.bungee.ServerConnection@3fb9ef3b (channel worldinfo:world_id):
tests_e2e-proxy-1 | [19:11:06 INFO] [MapModCompanion - worldinfo:world_id]: [worldinfo:world_id] Data (0): [0, 42, 0]
tests_e2e-server-1 | [19:11:06 INFO]: [MapModCompanion - worldinfo:world_id] Sending world_id packet to turikhay: [0, 42, 4, 49, 51, 51, 55]
tests_e2e-proxy-1 | [19:11:06 INFO] [MapModCompanion - worldinfo:world_id]: [worldinfo:world_id] Data sent from net.md_5.bungee.ServerConnection@3fb9ef3b to turikhay (channel worldinfo:world_id):
tests_e2e-proxy-1 | [19:11:06 INFO] [MapModCompanion - worldinfo:world_id]: [worldinfo:world_id] Data (0): [0, 42, 4, 49, 51, 51, 55]
tests_e2e-proxy-1 | [19:11:06 INFO] [MapModCompanion - worldinfo:world_id]: [worldinfo:world_id] Intercepting world_id packet sent to turikhay (channel worldinfo:world_id): PrefixedId{prefixLength=1, id=1337} -> PrefixedId{prefixLength=1, id=1337}
turikhay commented
Some time ago I've assembled this to better visualize packet structure of different mods. Thick borders mark the case in which we need to know the client's protocol version.