La commande /execute a été ajoutée à Minecraft en 1.8 et a, dès sa création, contribué à révolutionner le fonctionnement des blocs de commande. De nombreuses maps aventure tirent parti de celle-ci pour mettre en place des mécanismes complexes, à l’image de la réputation de cette commande.
Les bases :
Qu’est-ce que le /execute ?
Le /execute est une commande permettant d’exécuter une commande de votre choix directement aux coordonnées relatives d’un joueur ou d’une entité sans que celui-ci/celle-ci l’exécute lui/elle-même. En gros, vous simulez l’exécution d’une commande par un joueur ou une entité.
Construction de la commande :
La commande nécessite donc un point d’exécution, qui sera déterminé par un sélecteur (@a @e @p @r), suivi de coordonnées relatives et de la commande de votre choix (qui pourra également être suivie de coordonnées relatives si elle en a besoin). Ainsi, la commande ci-dessous sera exécutée un bloc à l’est d’un joueur pris au hasard et fera apparaître un bloc de pierre à cet emplacement.
/execute @r ~1 ~ ~ setblock ~ ~ ~ stone
Application de la commande :
Il est possible avec le /execute de cibler uniquement des joueurs/entités ayant des critères particuliers, comme un score de scoreboard. Imaginons par exemple que nous voulons poser un bloc de redstone sur les joueurs ayant le score deathCount à 1 (donc grosso modo tous les joueurs morts une fois). La commande à exécuter sera :
/execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ setblock ~ ~ ~ redstone_block
Jusqu’à là, rien de bien compliqué, on peut utiliser n’importe quel sélecteur avancé avec le /execute. Sachez qu’il est aussi possible de faire un /execute dans un /execute. On arrive alors à des commandes un peu plus complexes.
Exemple, on souhaite que tous les ArmorStand appelés « SpawnPoint » se trouvant à moins de 5 blocs du joueur en mode aventure fassent apparaître un zombie sur leur position. La commande ressemblera alors à ceci:
/execute @a[m=2] ~ ~ ~ /execute @e[type=ArmorStand,name=SpawnPoint,r=5] ~ ~ ~ /summon Zombie
Coordonnées numériques combinées aux coordonnées relatives :
/execute @p ~ 56 ~ setblock ~ ~ ~ stone
Imaginons que le joueur (le plus proche de l’endroit où la commande est exécutée) soit aux coordonnées 45 62 35. Alors la commande citée dans le dernier exemple fera apparaître un bloc de stone aux coordonnées 45 56 35. Ainsi, il est possible d’exécuter une commande à des coordonnées qui ne dépendent que partiellement du joueur ou de l’entité ciblée. Ici par exemple, la hauteur ne dépend pas de la position du joueur.
/execute… detect ? :
Si la commande /execute ne permet pas de tester les data-tags de la personne qui exécute la commande, une petite option disponible permet de faire exécuter la commande si, et seulement si, un bloc en particulier est trouvé à un endroit précis. La commande se construit alors comme ceci
/execute <sélecteur> <x> <y> <z> detect <x'> <y'> <z'> <bloc> <data> <commande>
Les nouvelles coordonnées x’, y’ et z’ correspondent à l’endroit où l’on souhaite tester la présence du bloc. La commande s’exécutera toujours à partir des coordonnées x, y et z. Le <data> sert pour détecter des blocs tels que les laines de couleurs ou un certain type de pierre. Si vous mettez « -1 », cela prendra tous les types du même bloc (wool -1 détectera toutes les laines, peu importe la couleur).
Exemples :
/execute @a ~ ~ ~ detect ~ ~-1 ~ wool 1 /say Je suis sur un bloc de laine orange
Cette commande fera dire à tous les joueurs sur un bloc de laine orange, « Je suis sur un bloc de laine orange ».
/execute @a ~ ~ ~ detect 54 21 33 stone -1 /tellraw @p {"text":"Il y a un bloc de pierre en 54 21 33"}
Cette commande dira à tous les joueurs « Il y a un bloc de pierre en 54 21 33 » si en effet il y a un bloc de pierre à cet endroit. Mais ce bloc de pierre peut être de la pierre normale, du granite ou encore de l’andésite puisqu’on ne demande pas de data particulier.
Encore une fois, on peut cumuler les execute, même avec le detect, ce qui permet de détecter des petites structures.
/execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:grass 0 execute @p ~ ~ ~ detect ~ ~2 ~ minecraft:air 0 /say Je suis sur de l'herbe et il y a de l'air au dessus de ma tête.
Notez bien que dans le deuxième execute, il faut utiliser un @p, sinon, si un joueur a un bloc d’herbe sous les pieds, il demandera à un autre joueur ayant un bloc d’air au dessus de la tête d’exécuter la dernière commande.
Image de Une réalisée par Biboush.
Bonjour,
Est ce possible de /execute detect un texte ? Par exemple, un joueur dis !Vie et la commande affiche sa vie(J’ai deja fait cette partie) ?
Je souhaite détecter un message spécifique.
Merci ^^
Bonjour, tu es en quelle version ? Si t’es en 1.13, je t’invite à lire l’article dédié. Si tu es en 1.12, peux-tu envoyer la commande entière ?
Bonjour, le /execute @a ~ ~ ~ detect …….. a un problème pour ma part. De l’aide svp :
On me dit : »detect » n’est pas disponible pour Alexislegeekeur
« reste relativement délaissée »
Euuuuuuh….. T’es sur de ce que tu dis ?
Je dis pas ça parce qu’environ la moitié des commandes que je tape contient au moins un execute mais un peu quand même quoi xD
Et je suis loin d’être le seul dans ce cas
Juste un truc à noter, dans le /execute, on n’a pas besoin de mettre un / à la commande qu’on execute au joueur, on peut très bien faire par exemple /execute @a[r=5] ~ ~ ~ effect @p levitation 1 127 true sans mettre un / avant le effect ^^
Tes tutos sont supers! (Mais je suis un peu dégouté par ce que tout les articles que tu fais actuellement j’avais envie de les faire en devenant rédacteur…Mais bon je suis sûrement trop nul en écriture ou en français alors je te laisse t’en occuper ;) )
Essayez « /execute @e[type=Chicken] ~ ~ ~ /summon Chicken » dans un monde survie. KFC garanti ! (sauf que ce qui va bruler c’est pas le bois du four mais votre serveur)
@mlakuss merci ^^ j’avais oublier sa :p
@mag39 Si tu peux. Pense à préciser un sélecteur dans ta commande /effect:
/execute @a ~ ~ ~ detect ~ ~-1 ~ wool 1 /effect @p 1 2 3
Merci pour ce tuto !
On peut ajouter un effect derrière le deect, genre :
/execute @a ~ ~ ~ detect ~ ~-1 ~ wool 1 /effect 1 2 3
?
parce que moi il me dit que non :/