Use this command:
/give @p minecraft:spawn_egg 1 0 {EntityTag:{id:creeper}}
You'll get an empty spawn egg.
If you change "id:creeper" to "id:minecraft:creeper", you get a creeper spawn egg (as expected)
Use any of these commands:
/setblock ~ ~1 ~ minecraft:mob_spawner 0 replace {SpawnData:{id:creeper}}
/setblock ~ ~1 ~ minecraft:mob_spawner 0 replace {SpawnPotentials:[{Entity:{id:creeper},Weight:1}]}
Both commands give you a default Pig spawner.
If you change "id:creeper" to "id:minecraft:creeper", SpawnData and SpawnPotentials are set as expected.
Why would the namespace be required for spawn eggs and spawners? It's inconsistent compared to any other part of the game.
Summon, setblock, selectors, etc. don't require the namespace.
Affects:
Spawn eggs
mob spawners
Linked issues
is duplicated by 2
Comments 4
@unknown read the actual ticket .
Creeper became minecraft:creeper, where minecraft: is optional.
Why would it be required in spawners and spawn eggs, unlike anything else in the game?
This is intended.
If we would have something in the world with a non-complete id it would not get upgraded properly when we do changes on it. Therefor now this is mandatory for blockentity and entity types.
@unknown I don't get it.
/summon item ~ ~ ~ {Item:{id:"dirt",Count:1b}}
/summon armor_stand ~ ~ ~ {Passengers:[{id:creeper}]}
/setblock ~ ~1 ~ minecraft:mob_spawner 0 replace {SpawnPotentials:[{Entity:{id:"minecraft:item",Item:{id:"cookie",Count:1b}},Weight:1}]}
DO work. Minecraft just adds minecraft: to the id of dirt/the creeper/cookie. Why shouldn't it work like this the same way for entity-types if you add the check on them upon summoning with a spawn egg or spawner? Makes no sense.
Duplicate of MC-106192. This is intended.