mojira.dev
MC-124343

Command block minecart data walker never runs due to comparing different types

Command block minecarts have the following data walker:

if ("minecraft:command_block".equals(new ResourceLocation(compound.getString("id"))))
{
    compound.setString("id", "Control");
    fixer.process(FixTypes.BLOCK_ENTITY, compound, versionIn);
    compound.setString("id", "MinecartCommandBlock");
}

return compound;
if ("minecraft:command_block".equals(new ResourceLocation(compound.getString("id"))))
{
    compound.setString("id", "Control");
    fixer.process(FixTypes.BLOCK_ENTITY, compound, versionIn);
    compound.setString("id", "MinecartCommandBlock");
}

return compound;

This will never run, because it is comparing a String constant with a resource location. (This issue was introduced in 18w01a). This is not an issue for spawner minecarts, which use if (Objects.equals("minecraft:spawner_minecart", (new ResourceLocation(s)).toString())).

The code also seems to be using old (pre-1.11) IDs, which is incorrect; see MC-116928.

Linked issues

Comments 0

No comments.

pokechu22

Fry

Unconfirmed

commandblock_minecart, data-fixer

Minecraft 18w02a, Minecraft 18w03b

Minecraft 18w20a

Retrieved