Introduite dans la version 1.13 de Minecraft, plus précisément dans la snapshot 17w45b, la commande /data est issue de la fusion des commandes /entitydata et /blockdata. Elle permet de gérer les données NBT d’un bloc ou d’une entité, c’est-à-dire de les obtenir, de les modifier et de les supprimer, à l’aide de sous-commandes très complètes.
Obtenir des données
Afin d’obtenir les données d’un bloc ou d’une entité, il existe les commandes /data get block <x> <y> <z> et /data get entity <sélecteur>. Notez que le bloc défini doit contenir une entité de bloc, sans quoi il n’aurait aucune donnée NBT. En ce qui concerne le sélecteur, celui-ci doit cibler une seule entité.
Utilisées seules, ces commandes afficheront dans le tchat toutes les données du bloc ou de l’entité. Elles peuvent être également suivies de deux arguments optionnels, <path> et <scale>, définissant respectivement le chemin d’accès d’une donnée NBT spécifique et l’échelle à laquelle elle sera affichée.
Exemples :
/data get block 0 0 0 Items[2].Count
retournera le nombre d’objets se trouvant dans l’emplacement 2 du bloc aux coordonnées 0 0 0, en supposant que celui-ci soit un conteneur.
/data get entity Minecraft-France Health 10
retournera le nombre de points de vie du joueur Minecraft-France, multiplié par 10.
Modifier des données
Pour modifier les données d’un bloc ou d’une entité, deux sous-commandes sont disponibles : /data merge et /data modify. Alors que la première permet simplement de fusionner des données avec celles d’un bloc ou d’une entité, la seconde permet de les modifier en détails, la rendant évidemment plus intéressante.
De la même manière que pour /data get, le bloc ou l’entité doit être spécifiée, respectivement avec block <x> <y> <z> et entity <sélecteur>. Pour la commande /data merge, il suffit alors d’ajouter les données NBT à fusionner.
En ce qui concerne /data modify, il vous faut préciser le chemin d’accès de la donnée que vous voulez modifier, suivi d’un argument indiquant la méthode de modification.
- append — Permet d’ajouter une donnée NBT à la fin d’une liste.
- insert — Permet d’insérer une donnée NBT à un index particulier d’une liste. Il est suivi de <index>.
- merge — Permet de fusionner une donnée NBT.
- prepend — Permet d’ajouter une donnée NBT au début d’une liste.
- set — Permet de définir la valeur d’une donnée NBT.
Tous ces arguments sont eux-mêmes suivis d’un sous-argument, permettant de définir la valeur soit à partir d’un bloc ou d’une entité, soit par le joueur.
- from block — La valeur d’une donnée NBT spécifiée provenant d’un bloc. Il est suivi de coordonnées et du chemin d’accès de la donnée NBT à utiliser.
- from entity — La valeur d’une donnée NBT spécifiée provenant d’une entité. Il est suivi d’un sélecteur et du chemin d’accès de la donnée NBT à utiliser.
- value — Une valeur entrée par le joueur.
Exemples :
/data merge entity @e[type=sheep,sort=nearest,limit=1] {Color:6}
fusionnera la donnée Color du mouton le plus proche pour qu’il devienne rose.
/data modify block 1 1 1 CookingTimes insert 3 from entity @p Health
définira le temps de cuisson à la même valeur que la vie du joueur le plus proche dans l’emplacement 3 du bloc aux coordonnées 1 1 1, en supposant que celui-ci soit un feu de camp.
/data modify entity @e[type=zombie,sort=nearest,limit=1] HandItems prepend value {id:diamond,Count:1}
mettra un diamant dans la main droite du zombie le plus proche. S’il avait déjà un objet dans sa main droite, celui-ci sera décalé dans sa main gauche, pour que le diamant soit au début de la liste.
/data modify block 2 2 2 RecordItem set from block 3 3 3 Items[5]
mettra l’objet se trouvant dans l’emplacement 5 du bloc aux coordonnées 3 3 3 dans l’emplacement de disque du bloc aux coordonnées 2 2 2, en supposant que le premier soit un conteneur et que le second soit un jukebox.
Supprimer des données
Pour finir, afin de supprimer des données, il existe la commande /data remove. Comme pour les autres commandes, elle doit être suivie de block <x> <y> <z> lorsqu’il s’agit d’un bloc et de entity <sélecteur> lorsqu’il s’agit d’une entité.
Le chemin d’accès de la donnée à supprimer doit alors être spécifiée.
Exemple :
/data remove entity @e[type=skeleton,sort=nearest,limit=1] HandItems[]
supprimera les objets se trouvant dans les mains du squelette le plus proche.
La commande /data sur Minecraft Wiki
Clairement la meilleure commande de Minecraft avec le execute !
/date modify in my heart <3 <3