Mojira Archive
MC-123450

Item frames play sounds when the item within them is read from NBT

The bug

Item frames play the sound entity.itemframe.add_item ("Item Frame fills") every time they read an item from NBT data. This happens when using commands like /data, but also when they are loaded from structures.

How to reproduce

  1. Summon an item frame with an item inside it by using the command provided below.
    /summon minecraft:item_frame ~ ~ ~ {Facing:1b,Rotation:[0.0f,-90.0f],Item:{id:"minecraft:diamond",Count:1b}}
  2. Have the item frame read NBT data by using the command provided below and listen closely as you do this.
    /data merge entity @e[type=item_frame,limit=1] {ArbitraryTag:1b}
  3. Take note as to whether or not item frames play sounds when the item within them is read from NBT.

Code analysis

Based on 1.12.2 decompiled using MCP 9.40

The method net.minecraft.entity.item.EntityItemFrame.setDisplayedItemWithUpdate(ItemStack, boolean) always plays the sound if there is an item in the item frame. Instead it should only do that when the second parameter (boolean) indicating whether or not the method was called by player interaction is false.