Minecraft 1.9.2 Command /give converted to /summon

I'm currently trying to convert a /give command into a /summon command.

/give @p minecraft:nether_star 1 0 {specialNetherStar:1b,display:{Name:"Nature"},ench:[{id:60s,lvl:10s}]}

Each time I convert it into this:

/summon Item ~ ~1 ~ {Item:{Id:minecraft:"nether_star",specialNetherStar:1b,display:{Name:"Nature"},ench:[{id:60s,lvl:10s}]}}

It ends up summoning a stone block instead. I do not understand why though. If someone could help me out I would be very grateful to them.


Solution 1:

NBT data is case-sensitive. Instead of Id for the item format you need id.

All tags that are not the root id, Damage, Count, or Slot, must be placed within a single tag compound. The NBT input for /give is already starting within the tag compound because the root data (apart from Slot, which cannot be used with /give) is already specified in the command's syntax.

You will also want to place the quotation marks around the entire string "minecraft:nether_star" rather than just around the "nether_star" part, as the quotes will otherwise be a part of the value and will invalidate the item ID.

Keep in mind that without a Count tag specified, its value will default to 0 and the item cannot be picked up.

Fixed command, adding a count of 1:

/summon Item ~ ~1 ~ {Item:{id:"minecraft:nether_star",Count:1b,tag:{specialNetherStar:1b,display:{Name:"Nature"},ench:[{id:60s,lvl:10s}]}}}