Mojira Archive
MC-122995

BlockEntityTag data fix walker is incomplete and incorrect

The bug

The data fix / upgrader walker for the BlockEntityTag of items (net.minecraft.util.datafix.walkers.BlockEntityTag) is incomplete and incorrect.
Warnings like the following mean that it could not walk the block entity data because it did not recognize the block entity based on the item id.

[Client thread/WARN]: Unable to resolve BlockEntity for ItemStack: minecraft:comparator

Note: It is unclear why the client is logging this since the server should likely be doing the upgrade.

Problems

Block ids are used instead of item ids

Some entries use the block ids instead of item ids. The following lists use to indicate that an entry should be removed.

Old block entity id map

Maps from item id to the old block entity id, for example RecordPlayer.

List last updated for 17w50a

Block id Required action
lit_furnace
standing_sign
wall_sign
piston_head
daylight_detector_inverted
unpowered_comparator
powered_comparator comparator
standing_banner
wall_banner
end_portal
end_gateway
shield Note
New block entity id map

Maps from item id to the old block entity id, for example minecraft:jukebox.

List last updated for 17w50a

Block id Required action
lit_furnace
standing_sign
wall_sign
piston_head
daylight_detector_inverted
unpowered_comparator
powered_comparator comparator
standing_banner
wall_banner
end_portal
end_gateway
shield Note

Note to shields

Shields should possibly not even be contained in these maps since they have no block entity. For current data versions they should probably map to minecraft:banner. In case their NBT structure changes at some point an data version check should be added.

minecraft:banner is contained twice

The map for the new block entity ids contains a minecraft:banner to minecraft:banner entry twice.

Missing player head item ids

The map for the new block entity ids does not contain the item ids for the new splitted heads / skulls ids:
List last updated for 17w50a

  • skeleton_skull
  • wither_skeleton_skull
  • player_head
  • zombie_head
  • creeper_head
  • dragon_head

Missing bed item ids

The map for the new block entity ids does not contain the item ids for the new splitted bed ids.

Outdated entries not data version filtered

The map for the new block entity ids does not filter based on the data version, this means it walks for outdated entries like for example the flower pot which does not have a block entity anymore.