mojira.dev
MC-59061

Player is for a short moment at the wrong position when opening a world

The bug

When you open a world the player is at the wrong position for a short moment. This is most noticeable when the game loses focus and pauses just before it finishes loading (might take multiple tries).

Code analysis

Based on 1.11 decompiled using MCP 9.35 rc1

This happens because the client calls the method net.minecraft.client.Minecraft.loadWorld(WorldClient, String) when it receives a net.minecraft.network.play.server.SPacketJoinGame packet. The constructor net.minecraft.entity.player.EntityPlayer.EntityPlayer(World, GameProfile) places the player at the spawn point and the method net.minecraft.entity.player.EntityPlayer.preparePlayerToSpawn() searches a valid position near the spawn point.
The position is corrected when the first net.minecraft.network.play.server.SPacketPlayerPosLook packet is received.

Sending the player position in the SPacketJoinGame packet could solve this problem.

Linked issues

Comments 4

Cannot reproduce in 15w37a as Minecraft does not load chunks anymore when minimizing while it opens a world

I don't seem to be able to reproduce this in 20w07a.

Can someone please check, if this still applies to 1.15.2 or the latest 1.16 development snapshot (currently that is 20w07a)?

Can reproduce in 1.11.2, but can no longer in 20w07a. Appears to have been fixed or behaviour has changed in general.

Marcono1234

(Unassigned)

Confirmed

packet, player, spawnpoint, world

Minecraft 14w26b, Minecraft 14w28a, Minecraft 14w29b, Minecraft 14w30c, Minecraft 14w31a, Minecraft 1.8-pre2, Minecraft 1.11, Minecraft 1.11.2, Minecraft 17w06a

Minecraft 15w37a

Retrieved