mojira.dev
MC-108598

Client rendering other player or mob holding compass influences compass of user

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

  1. Set the world spawn at your current position or got to the world spawn

  2. Build a circle of rails, including powered rails, around it

  3. 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}]}]}
  4. Push the minecart

  5. 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

Attachments

Comments 5

I can confirm this.

Please alway include for which version you confirm a bug.

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.

Confirmed fixed in 20w17a.

Mitchell Cairns

Panda4994

Confirmed

Items

compass, lan, mob, multiplayer, rendering

Minecraft 16w40a, Minecraft 1.11, Minecraft 16w50a, Minecraft 1.11.2, Minecraft 17w16b, ..., 1.15 Pre-Release 2, 1.15.2, 20w13b, 20w15a, 20w16a

20w17a

Retrieved