Mise à jour :
1. Créer la clé
/give @s tripwire_hook[custom_data={key:1b},custom_name="Clé du coffre-fort"]
La donnée personnalisée key:1b marque la vraie clé : une copie renommée à l'enclume ne marche donc pas. En 1.21.4 et antérieur, écrivez le nom ainsi : custom_name='"Clé du coffre-fort"'.
2. Porte et marqueur
Posez une porte en fer. Placez-vous dans sa moitié basse et invoquez un marqueur dans le bloc juste en dessous :
/summon marker ~ ~-1 ~ {Tags:["keydoor"]}
3. Trouver les porteurs de clé (Répétition)
/tag @a remove near_key
/execute at @e[type=marker,tag=keydoor] as @a[distance=..3] if items entity @s weapon.* *[custom_data~{key:1b}] run tag @s add near_key
weapon.* vérifie les deux mains, et custom_data~{key:1b} correspond aux objets qui contiennent key:1b.
4. Ouvrir et fermer (Répétition)
/execute at @e[type=marker,tag=keydoor] if entity @a[tag=near_key,distance=..3] run setblock ~ ~ ~ redstone_block
/execute at @e[type=marker,tag=keydoor] unless entity @a[tag=near_key,distance=..3] run setblock ~ ~ ~ stone
Un bloc de redstone sous la porte l'ouvre, et de la pierre la referme. Chaque porte marquée fonctionne indépendamment.
5. Clés à usage unique
/execute at @e[type=marker,tag=keydoor] as @a[tag=near_key,distance=..3] run clear @s tripwire_hook[custom_data~{key:1b}] 1
Retirez la ligne de fermeture de l'étape 4 et enchaînez celle-ci après la ligne d'ouverture. La porte reste ouverte et une clé est consommée.
6. Des clés différentes pour des portes différentes
Utilisez custom_data={key:2b} et un tag de marqueur keydoor2, puis copiez les étapes 3 et 4 avec ces valeurs.
7. Porte automatique sans clé
execute at @e[type=marker,tag=keydoor] if entity @a[distance=..3] run setblock ~ ~ ~ redstone_block
execute at @e[type=marker,tag=keydoor] unless entity @a[distance=..3] run setblock ~ ~ ~ stone
Pour une porte qui s'ouvre pour n'importe qui à proximité, sautez l'étape 3 et retirez tag=near_key, de l'étape 4. Bedrock n'a pas de marqueur : écrivez directement la position et utilisez r au lieu de distance : execute if entity @a[x=10,y=64,z=10,r=3] run setblock 10 63 10 redstone_block.
Dépannage
- La porte ne s'ouvre pas : vérifiez que le marqueur est juste sous la porte.
- Clé ignorée : donnez une nouvelle clé avec l'étape 1.
- Bedrock Edition : utilisez plutôt l'argument de sélecteur hasitem.
Vérifiez votre commande
Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.