The bug
When the client renders another mob or player holding a compass the compass of the user is affected by the other mob or player.
How to reproduce
Set the world spawn at your current position or got to the world spawn
Build a circle of rails, including powered rails, around it
Use the following command while standing on the rails
/summon minecart ~ ~ ~ {Passengers:[{id:"zombie",ArmorItems:[{},{},{},{id:"skeleton_skull",Count:1b}],HandItems:[{id:"compass",Count:1b}]}]}
Push the minecart
Put a compass in your hotbar and don't move
→ The compass needle moves despite neither you are moving nor the world spawn point being changed
Code analysis
Based on 1.11 decompiled using MCP 9.35 rc1
This happens because the IItemPropertyGetter
of the compass item has attributes. This should not be the case as the IItemPropertyGetter
belongs to the item constant which is used for everything. Because of this rendering a mob or player which is holding a compass influences how the compass is rendered for the user.
Linked issues
is duplicated by 4
Attachments
Comments 5
The mob's compass affects the player's compass even if the mob is hidden behind a wall. However, if the player turns around so that the mob is completely off-screen, the player's compass functions normally.
I can confirm this.