> if you intend to support bungeecord you will need to split the MapId-Cache into parts and give all servers a section
Yes, I'm currently trying to find the best approach for this. Unfortunately, the problem with supporting bungeecord becomes much more complex when you have to account for servers that could be using modded maps, but do not have the plugin installed.
And I highly suggest against withholding the respawn packet as a fix.
PlacketPlayerOutRespawn is the packet that is responsible for dimension changes, it is used to change the world the player is currently in.
I have since created a workaround by tracking client-side map IDs that are bugged out and translating packet data (item frame metadata packet) to write map pixels to a map ID that is not bugged out for the client. It's a dirty workaround, but there is no other solution at the moment.
Here is the source code that contains the majority of the process for packet translation (internals of my Consoles API):
EDIT: And the issue is still present in version 1.8.4
Thanks, hopefully this can get fixed eventually. For now, I'm going to work around the issue by manually sending entity update packets to players with new damage values after they switch worlds.
Still exists in Minecraft 1.8.3 in singleplayer and multiplayer - this is a client sided bug where the client stops updating (and locks up) all the map IDs it has viewed when the player switches dimensions, requiring a client restart.
Mojang, please stop ignoring this issue. This is an easy fix in the client code.