Affects Version/s: Minecraft 15w47a, Minecraft 15w47c, Minecraft 15w49a, Minecraft 1.9, Minecraft 1.9.1 Pre-Release 1, Minecraft 1.9.1 Pre-Release 2, Minecraft 1.9.1 Pre-Release 3, Minecraft 1.9.1, Minecraft 1.9.2, Minecraft 16w14a, Minecraft 16w15a, Minecraft 16w15b, Minecraft 1.9.3 Pre-Release 1, Minecraft 1.9.3 Pre-Release 3, Minecraft 1.9.4, Minecraft 16w20a, Minecraft 1.10 Pre-Release 2, Minecraft 1.10, Minecraft 1.10.2, Minecraft 16w36a, Minecraft 16w39b, Minecraft 16w39c, Minecraft 16w41a, Minecraft 16w42a, Minecraft 16w43a, Minecraft 1.11 Pre-Release 1, Minecraft 1.11.1, Minecraft 1.11.2, Minecraft 17w06a, Minecraft 17w14a, Minecraft 17w17b, Minecraft 17w18a, Minecraft 17w18b, Minecraft 1.12 Pre-Release 5, Minecraft 1.12 Pre-Release 7, Minecraft 1.12, Minecraft 1.12.1 Pre-Release 1
Fix Version/s: Minecraft 1.12 Pre-Release 3
Players are removed from the list of loaded entities and the EntityTracker stops tracking them when they teleport out of non-spawn chunks which are not loaded afterwards anymore into currently unloaded chunks. This causes all kind of desynchronizations for the client and results in the @e selector not finding the player anymore (@a, @r and @p still do).
- For any level of speed/slowness, it doesn't increase/decrease your walking speed, nor FOV and if you had speed or slowness before the glitch happens the speed/slowness will also stay after you clear it. (It won't show any particles or a tab in the GUI saying that you have the effect but your FOV is still increased/decreased and you still walk faster/slower)
- Invisibility doesn't work.
- Switching to spectator mode makes your head completely nontransparent (
MC-93377) and when switching from spectator to another makes you invisible. ( MC-92324)
- You don't take knockback from any damage. (
- You can't hear any damage sounds.
- Elytras won't work (
MC-89994) which might be the cause of MC-90035.
- Targeting with @e and @r[type=player] becomes unreliable. (
- If you have some armor equipped, then teleport, changing the armor values (changing, adding, removing) makes your armor points stay the same.
- Players will be invisible. (
- Potion effects are displayed incorrectly, went through a teleporter after getting absorption, and even after the absorption wore off minutes later, the particle effects from it were there.
- Health is displayed incorrectly, health-boost/absorption before teleporting, and extra hearts did not show after teleporting.
- Attack Indicator displays wrong animation (
List by Spake Miner
The main steps are always
- Use setup steps provided for the specific reproduction case
- Teleport away from any chunks which remain loaded after you teleport, example: spawn chunks, chunks with other player, chunks with hoppers...
- Teleport away from these chunks making sure they get unloaded once you teleported
- Use reproduction steps provided for the specific reproduction case
- Give yourself speed or slowness which both modify the movement speed
- Walk around
→ You will notice that you walk with normal movement speed
- Give yourself for example night vision
- Clear the potion effects
→ You will notice that the particles remain
The FLAGS data parameter stores the state for some entity states:
- elytra flying
Data parameters are managed by the EntityTracker and therefor the player will not receive the change. The highlighted states cause client side problems. "Invisible" includes switching from Spectator mode to Creative mode.
Switch to Spectator mode or give yourself the invisibility effect
- Switch back to a different game mode
- Stand in fire
- Use the glowing effect
- Use the invisibility effect
- Try using the elytra
Use the following command
Based on 1.11.2 decompiled using MCP 9.35 rc1
The problem is that the method net.minecraft.world.World.updateEntityWithOptionalForce(Entity, boolean) only updates the chunk an entity is in if the area around the entity is loaded, which causes other bugs like
MC-81536 and might not be a good design as seen in MC-108469.
When the server then receives a CPacketPlayer packet before the area around the player is loaded correcting the chunk the player is in, the chunks were the player was before are unloaded. This makes the server then later remove the player from the list of loaded entities (Side note: but not loaded players) and causes the EntityTracker to stop tracking the player which means no data parameter changes are send to the player anymore.
Removing the condition for the area to be loaded could nearly completely solve this problem. It would however not solve the problem where entities teleported in unloaded chunks get lost.
The reason why it only "nearly completely" solves this is because it might still be possible that this happens when the CPacketPlayer packet is received and processed before the player is updated, which might be possible because packets are processed before players are updated.