The Bug
Normal shulker box and purple shulker box have wrong color on maps (the two color should be interchanged).
Normal shulker box shows up as Color_Purple color on maps, the correct color should use either Terracotta_Purple or Terracotta_Magenta.
Purple shulker box shows up as Terracotta_Purple color on maps, the correct color should use Color_Purple.
How to reproduce
Summon some normal shulker boxes and some purple shulker boxes
/fill ~3 ~ ~3 ~9 ~ ~9 minecraft:shulker_box /fill ~-3 ~ ~3 ~-9 ~ ~9 minecraft:purple_shulker_box
Obtain an empty map and use it
Take note as to what the color of the normal shulker boxes are displayed as, and what color the purple shulker boxes are displayed as
→ ❌ Normal shulker boxes and purple shulker boxes are displayed in the incorrect colors on maps
Expected Behavior
Normal shulker boxes and purple shulker boxes would not be displayed in the incorrect colors on maps. Instead, the colors of these two blocks on maps should be interchanged.
Code analysis
@unknown has done a code analysis in this comment.
Linked issues
is duplicated by 1
relates to 12
Attachments
Comments 10
Can Confirm 1.17.1, as you can see in this image, all shulker boxes use the colour of wool, except for the Purple one. (the top row is a zoomed-in view of a map)
[media]Can confirm this behavior in 21w40a. Here are some extra details regarding this problem.
The Bug:
Normal shulker boxes and purple shulker boxes are displayed in the incorrect colors on maps.
Steps to Reproduce:
Summon some normal shulker boxes and some purple shulker boxes.
/fill ~3 ~ ~3 ~9 ~ ~9 minecraft:shulker_box
/fill ~-3 ~ ~3 ~-9 ~ ~9 minecraft:purple_shulker_box
Obtain an empty map and use it.
Take note as to what the color of the normal shulker boxes are displayed as, and what color the purple shulker boxes are displayed as.
Observed Behavior:
Normal shulker boxes and purple shulker boxes are displayed in the incorrect colors on maps.
Expected Behavior:
Normal shulker boxes and purple shulker boxes would not be displayed in the incorrect colors on maps. Instead, the colors of these two blocks on maps should be interchanged.
I can confirm this behavior in 1.18 Release Candidate 3.
Here's a code analysis of this issue. The following is based on a decompiled version of Minecraft 1.17.1 using MCP-Reborn.
net.minecraft.world.level.block.Blocks.java
public class Blocks {
...
public static final Block SHULKER_BOX = register("shulker_box", shulkerBox((DyeColor)null, BlockBehaviour.Properties.of(Material.SHULKER_SHELL)));
...
public static final Block PURPLE_SHULKER_BOX = register("purple_shulker_box", shulkerBox(DyeColor.PURPLE, BlockBehaviour.Properties.of(Material.SHULKER_SHELL, MaterialColor.TERRACOTTA_PURPLE)));
...
net.minecraft.world.level.material.Material.java
public final class Material {
...
public static final Material SHULKER_SHELL = (new Material.Builder(MaterialColor.COLOR_PURPLE)).build();
...
If we look at the above classes, we can see that shulker boxes do not have a MaterialColor
, so instead, they use the MaterialColor
of Material.SHULKER_SHELL
which is COLOR_PURPLE
. We can also see that purple shulker boxes have a MaterialColor
of TERRACOTTA_PURPLE
.
The problem here is that COLOR_PURPLE
appears much brighter and more vibrant than TERRACOTTA_PURPLE
, resulting in shulker boxes and purple shulker boxes not accordingly reflecting the color of their block's top texture on maps.
Can confirm in 20w51a.