1.16
Une solution intéressante pour modifier le NBT d'un objet personnalisé est de le copier dans un coffre, de le modifier dans le coffre (où il peut être modifié) et d'utiliser ensuite la fonction /loot
en replace
pour remplacer l'emplacement de l'élément.
Remarque : Lorsque la version 1.17 sera entièrement disponible, vous pourrez remplacer cette méthode par la méthode /item
commandement.
Préparation extérieure
Pour ce faire, vous aurez besoin d'une table de butin spéciale. Cliquez sur ce lien pour accéder à un pack de données contenant la table de loot dont vous aurez besoin.
Cette table de butin fera en sorte qu'une boîte de shulker jaune laissera tomber son contenu au lieu d'elle-même lorsqu'elle sera brisée à l'aide d'un outil portant la balise personnalisée. {drop_contents:1b}
.
Préparation à Minecraft
Vous devez d'abord poser une boîte de shulker jaune et placer un objet temporaire (comme un morceau de terre) dans l'emplacement 0 (coin supérieur gauche).
Important : Veillez à ce que la boîte de Shulker soit vide et écrivez-y toujours avec le chemin NBT. Items[0]
.
L'emplacement standard de cette boîte est (-30000000, 0, 1602).
Commandes
La première étape consiste à copier l'élément dans la boîte de Shulker :
data modify block (x) (y) (z) Items[0] merge from entity (selector) SelectedItem
(Note : si votre source de copie inclut le Slot
vous devrez utiliser trois commandes distinctes pour copier la balise ID
, Count
y tag
séparément.)
La deuxième étape consiste à modifier cet élément, en utilisant les commandes de votre choix pour faire référence à la boîte de Shulker. Voici quelques exemples de commandes. Essayez-les pour votre premier essai. Ces commandes règleront le niveau d'enchantement Sharpness sur la valeur du scoreboard que vous aurez spécifiée.
data modify block (x) (y) (z) Items[0] merge value {tag:{Enchantments:[{id:"minecraft:sharpness", lvl:1s}]}}
execute store result block (x) (y) (z) Items[0].tag.Enchantments[0].lvl short 1.0 run scoreboard players get FakePlayer myObjective
Une fois la modification terminée, voici la magie : utilisez /loot
pour remplacer l'élément dans l'emplacement spécifié.
loot replace entity (selector) weapon.mainhand 1 mine block (x) (y) (z) minecraft:air{drop_contents:1b}