Mise à jour :

Ce qui a changé

Jusqu'à la 1.20.4, les données supplémentaires d'un objet allaient dans un seul bloc NBT {...}. Depuis la 1.20.5, nom, enchantements, durabilité, etc. sont des composants séparés écrits entre [...] juste après l'ID de l'objet.

Jusqu'à la 1.20.4 (NBT)1.20.5+ (composants)
Où{ } après l'ID[ ] juste après l'ID
Séparateur:=
EnchantementsEnchantments:[{id:"sharpness",lvl:5}]enchantments={sharpness:5} (1.21.5+)
IncassableUnbreakable:1bunbreakable={}
Nomdisplay:{Name:'...'}custom_name=...

Le même /give dans les deux formats

# Jusqu'à la 1.20.4
/give @p diamond_sword{Enchantments:[{id:"sharpness",lvl:5}],Unbreakable:1b} 1
# 1.21.5+
/give @p diamond_sword[enchantments={sharpness:5},unbreakable={}] 1

Entre la 1.20.5 et la 1.21.4, il y a d'autres différences, comme enchantments={levels:{sharpness:5}}. Plutôt que de les suivre à la main, choisissez votre version dans le générateur de commande give.

Pourquoi les composants sont meilleurs

Les entités et les blocs utilisent toujours le NBT

Seuls les objets sont passés aux composants. Les données de mob dans /summon (comme {NoAI:1b}) et les données de bloc comme le contenu d'un coffre restent en NBT. Les objets tenus par un mob dans ce NBT utilisent la forme composants.

/summon zombie ~ ~ ~ {NoAI:1b}

Voir comment un objet est stocké

/data get entity @s SelectedItem

Sur Java, cela affiche l'ID et les composants de l'objet que vous tenez : un bon modèle pour écrire un /give.

Bedrock Edition

Ce changement ne concerne que Java. Le /give de Bedrock prend une quantité, une valeur de données et un petit bloc JSON pour quelques champs comme can_destroy.

Questions fréquentes

Vérifiez votre commande

Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.