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 | : | = |
| Enchantements | Enchantments:[{id:"sharpness",lvl:5}] | enchantments={sharpness:5} (1.21.5+) |
| Incassable | Unbreakable:1b | unbreakable={} |
| Nom | display:{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
- Chaque champ a son propre nom : on voit mieux à quoi sert une valeur.
- De nouvelles modifications deviennent possibles, comme rendre n'importe quel objet comestible ou changer sa taille de pile maximale.
- /clear et /execute utilisent les mêmes noms pour détecter les objets.
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
- Les objets des anciens mondes disparaissent-ils ? Non. Ouvrir un monde dans une nouvelle version convertit le NBT des objets en composants. Seule la façon d'écrire les commandes change.
- Faut-il réécrire les data packs ? Les parties qui utilisent le NBT d'objet (give, clear, item, conditions d'objet) oui. Celles qui n'utilisent que le NBT d'entité marchent généralement encore.
- Où est la liste des composants ? Appuyez sur Tab pendant la saisie pour voir les suggestions. Les principaux sont des champs du générateur give.
Vérifiez votre commande
Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.