I haven't tested this anywhere else, but it's definitely an issue on Hypixel.
To reproduce the issue just join Hypixel and switch to another lobby (e.g. by using /bedwars). It should hang on the downloading terrain screen saying that it's waiting for like 4000 chunks or something ridiculous. I think the issue is that the client is waiting for the spawn position packet to get sent before it hides the downloading terrain screen, but that doesn't get sent by the server when switching dimensions/worlds. It's probably best to just look into what vanilla does.
I managed to fix this now (in commit c16f0fd5bedbb863dd1d119003f6febceb67f465). It was a combination of a few different missing bits of logic in the respawn packet handler and the join game packet handler.
I haven't tested this anywhere else, but it's definitely an issue on Hypixel.
To reproduce the issue just join Hypixel and switch to another lobby (e.g. by using
/bedwars
). It should hang on the downloading terrain screen saying that it's waiting for like 4000 chunks or something ridiculous. I think the issue is that the client is waiting for the spawn position packet to get sent before it hides the downloading terrain screen, but that doesn't get sent by the server when switching dimensions/worlds. It's probably best to just look into what vanilla does.