Eh bien, j'ai deux solutions pour vous :
Le premier teste s'il y a un élément spécifique dans une zone particulière. Dans ce cas, je me suis donné un papier avec l'étiquette Key:1
:
/give @p paper{Key:1} 1
Je peux alors mettre cela dans un bloc de commande répétitif pour tester le papier :
/execute at @e[type=item,nbt={Item:{id:"minecraft:paper",Count:1b,tag:{Key:1}}},x=4,y=56,z=9,dx=1,dy=1,dz=1] run say ok
Dans ce cas, il recherche l'élément spécifique à 4 56 9, dans une zone de taille 1 dans toutes les directions, soit la taille d'un bloc.
Vous pouvez modifier le at
à as
ou if entity
comme vous le souhaitez, cela ne semble pas faire de différence sauf lorsque j'utilise as
dans cette commande, il est dit "[Paper] ok"
au lieu de "[@] ok"
.
Vous replacerez ensuite les coordonnées dans le bloc que vous souhaitez, par exemple sous un panneau indiquant "Throw key here!"
ou quelque chose comme ça.
Vous pouvez ensuite changer la balise pour n'importe quoi, je l'ai nommé Key:1
mais vous pouvez utiliser n'importe quoi tant que vous utilisez les deux-points :
en elle et testez toujours la même chose que vous l'avez nommée.
Je recommande d'utiliser setblock
pour placer un bloc de Redstone à côté de certains blocs de commande pour l'effet désiré.
Dans un bloc de commande en chaîne, vous placerez ensuite cette commande pour supprimer le document :
/execute as @e[type=item,nbt={Item:{id:"minecraft:paper",Count:1b,tag:{Key:1}}},x=4,y=56,z=9,dx=1,dy=1,dz=1] run kill @s
L'autre méthode exigerait que le joueur tienne la touche et appuie sur un bouton ou peut-être un signe :
/execute as @a if entity @s[nbt={SelectedItem:{id:"minecraft:paper",Count:1b,tag:{Key:1}}}] run say hi
Cette commande teste tous les joueurs qui détiennent un papier avec le tag Key:1
.
Vous feriez la même chose que la première, mais en utilisant un bouton, puis vous placeriez cette commande dans le bloc de la chaîne :
/execute as @a if entity @s[nbt={SelectedItem:{id:"minecraft:paper",Count:1b,tag:{Key:1}}}] run clear @s paper{Key:1}