Commandes/Execute

De Minecraft Wiki
Aller à : navigation, rechercher
Version Java.png

Version Java uniquement
Cet article est une ébauche.
Vous pouvez partager vos connaissances en l'améliorant.

La commande /execute permet de définir les conditions d'exécution d'une commande tierce, nommée sous-commande. Elle permet de sélectionner un ou plusieurs exécuteurs, de simuler et de tester des conditions et d'enregistrer des données dans le but d'exécuter la sous-commande.

execute
Restrictions
Ajoutée en

1.8 (14w07a)

Modification majeure

1.13

Fonctionnement[modifier | modifier le wikicode]

La commande /execute <...> n'a pas d'effet en elle-même. Il est nécessaire de définir la sous-commande à exécuter à l'aide du mot-clé run (sauf dans des cas d'utilisation des seuls arguments de stockage). La sous-commande se place généralement à la fin. Il ne faut pas mettre de / au début de la sous-commande. Tout l'intérêt de la commande execute réside dans la définition d'arguments conditionnels. Il n'y a pas de limite numérique à leur utilisation. Il existe trois catégories d'arguments conditionnels :

  • Les arguments modificateurs permettent de sélectionner un support (entité, coordonnées dans le monde) pour l’exécution de la sous-commande. Il est aussi possible de simuler des conditions (orientation du regard d'un joueur, position) à partir d'une entité sans toutefois en modifier les caractéristiques réelles.
  • Les arguments de conditions permettent de faire des vérifications supplémentaires qui peuvent être indépendantes des arguments modificateurs sélectionnés précédemment. Ils peuvent servir à vérifier l’existence d'une autre entité ou à comparer des scores entre plusieurs entités.
  • Les arguments de stockage permettent de conserver le résultat ou l'information de la bonne exécution d'une sous-commande ou de celle d'un argument de condition. Cela ne concerne que des valeurs numériques. Elle sont stockées dans un score d'objectif ou dans un tag NBT.

Arguments modificateurs[modifier | modifier le wikicode]

align[modifier | modifier le wikicode]

Effectue un arrondi par défaut des coordonnées à partir des arguments précédemment exécutés.
Syntaxe
align <axes>
  • <axes>: Une combinaison des caractères x y et z (par exemple : x, xz, zyx et yz).
Exemple
/execute at @p align y run <...>: Si le joueur @p a une coordonnée y=69.6, l'argument align arrondit cette valeur à 70 pour les arguments suivants et/ou la sous-commande.

anchored[modifier | modifier le wikicode]

Permet de définir le point d'origine (yeux ou pieds) d'une entité. Par défaut, l'origine se situe aux pieds. Cet argument est très utile lorsque l'on souhaite utiliser des coordonnées locales.
Syntaxe
anchored (feet|eyes)
  • (feet|eyes): feet pour les pieds, eyes pour les yeux.
Exemple
/execute at @p anchored eyes run setblock ^ ^ ^4 minecraft:diamond_block: Place un bloc de diamant 4 blocs devant les yeux du joueur @p, quelque soit la rotation de sa tête.

as[modifier | modifier le wikicode]

Définit <entité> comme exécuteur des arguments et de la sous-commande. Les coordonnées d'exécution restent inchangées. Toutes les informations d'<entité> sont chargées excepté la position, la rotation de la tête et les dimensions. Cet argument est l’opposé de at.
Syntaxe
as <entité>
  • <entité>: Entité existante.
Exemple
/execute as @p run say Je suis un execute/as: Exécute la commande /say en tant que @p.
/execute as @p run tag @s add Un_Tag: Ajoute un tag au joueur @p.

at[modifier | modifier le wikicode]

Utilise les coordonnées d'<entité> pour l'exécution. L'exécuteur reste inchangé. Seules la position, la rotation de la tête et les dimensions d'<entité> sont chargées. Cet argument est l'opposé de as.
Syntaxe
at <entité>
  • <entité>: Entité existante.
Exemple
/execute at @p run setblock ~ ~-1 ~ minecraft:diamond_block: Place un bloc de diamant sous les pieds du joueur @p

facing[modifier | modifier le wikicode]

Définit l'orientation de l'exécuteur à <x y z> pour l'exécution des arguments et de la sous-commande. Cet argument simule l'orientation de l’exécuteur; son orientation reste en réalité inchangée.
Syntaxe
facing <x y z>
  • <x y z>: Coordonnée de la cible.
Exemple
/execute as @p at @s facing 10 20 30 run setblock ^ ^ ^5 minecraft:diamond_block: Place un bloc de diamant à 5 blocs du joueur @p en direction du point de coordonnées 10 20 30.

facing entity[modifier | modifier le wikicode]

Définit l'orientation de l'exécuteur aux coordonnées de l'<entité> pour l'exécution des arguments et de la sous-commande. Cet argument simule l'orientation de l’exécuteur; son orientation reste en réalité inchangée.
Syntaxe
facing entity <entité>
  • <entité>: Entité ciblée. Une seule entité uniquement.
Exemple
/execute as @p at @s facing entity @e[type=cow,limit=1,sort=nearest] run setblock ^ ^ ^5 minecraft:diamond_block: Place un bloc de diamant à 5 blocs du joueur @p en direction de la Vache la plus proche.

in[modifier | modifier le wikicode]

Définit la dimension depuis laquelle les arguments et la sous-commande s'exécutent.
Syntaxe
in (overworld|the_end|the_nether)
  • (overworld|the_end|the_nether): Dimension à choisir.
Exemple
/execute as @p at @s in the_nether run teleport 0 64 0: Téléporte le joueur @p aux coordonnées 0 64 0 dans le Nether, quelque soit sa dimension d'origine.

positioned[modifier | modifier le wikicode]

Définit les coordonnées <x y z> à partir desquelles s'exécutent les arguments et la sous-commande. Peut servir également à déplacer des coordonnées d'une entité sélectionnées précédemment.
Syntaxe
positioned <x y z>
  • <x y z>: Coordonnées de la cible.
Exemple
/execute positioned 10 20 30 run setblock ~ ~ ~ minecraft:diamond_block: Place un bloc de diamant aux coordonnées 10 20 30.

positioned as[modifier | modifier le wikicode]

Utilise les coordonnées d'<entité> pour l'exécution. Peut servir également à déplacer des coordonnées d'une entité sélectionnée précédemment. L'exécuteur reste inchangé. Le comportement de cet argument diffère de at parce qu'il ne modifie pas l'<entité>.
Syntaxe
positioned as <entité>
  • <entité>: Entité existante. Une seule entité uniquement.
Exemple
/execute positioned as @p run setblock ~ ~ ~ minecraft:diamond_block: Place un bloc de diamant aux mêmes coordonnées que le joueur @p.

rotated[modifier | modifier le wikicode]

Définit l'angle de rotation <rotY rotX> à partir de l'origine pour l'exécution.
Syntaxe
rotated <rotY rotX>
  • <rotY rotX>: Angle de rotation.
Exemple
/execute at @p rotated ~10 ~20 run setblock ^ ^ ^4 minecraft:diamond_block: Place un bloc de diamant à 4 blocs devant joueur @p mais à un angle de 10/20 par rapport à son orientation d'origine.

rotated as[modifier | modifier le wikicode]

Définit l'angle de rotation de <entité> comme angle à partir de l'origine pour l'exécution.
Syntaxe
rotated as <entité>
  • <entité>: Entité existante. Une seule entité uniquement.
Exemple
/execute at @p rotated as @e[type=cow,limit=1,sort=nearest] run setblock ^ ^ ^4 minecraft:diamond_block: Place un bloc de diamant à 4 blocs devant joueur @p mais à un angle de rotation égal à celui de la Vache la plus proche.

Arguments de condition[modifier | modifier le wikicode]

Toutes les conditions sont introduites par if ou unless. Les conditions sont "bloquantes". Si la condition n'est pas validée, la commande /execute ne traite pas les arguments suivants et n’exécute pas la sous-commande.

  • if vérifie si la condition est vraie. Il faut au moins 1 résultat vrai pour qu'elle soit validée.
  • unless vérifie si la condition est fausse. Il faut qu'aucun des résultats ne soit vrai pour qu'elle soit validée.

block[modifier | modifier le wikicode]

Teste si le bloc aux coordonnées <x y z> correspond au bloc <bloc>.
Syntaxe
(if|unless) block <x y z> <bloc>
  • <x y z>: Coordonnées du bloc à tester.
  • <bloc>: ID d'un bloc. Peut aussi prendre des "Tags".
Validation
if: Valide si le bloc aux coordonnées <x y z> correspond à <bloc>
unless: Valide si le bloc aux coordonnées <x y z> correspond à tout sauf à <bloc>
Exemple
/execute if block 0 64 0 minecraft:diamond_block run tellraw @a {"text":"Diamant trouvé!"}: Annonce à tous les joueurs le message "Diamant trouvé!" si ce bloc se trouve aux coordonnées 0 64 0.
/execute as @a at @s unless block ~ ~-1 ~ minecraft:air run tellraw @a {"text":"Tu es sur la terre ferme!"}: Annonce à tous les joueurs "Tu es sur la terre ferme!" si le bloc se trouvant sous leurs pieds n'est pas un bloc d'air.

blocks[modifier | modifier le wikicode]

Teste si la région entre <xS yS zS> et <xE yE zE> correspond à la destination <xD yD zD>.
Syntaxe
(if|unless) blocks <xS yS zS> <xE yE zE> <xD yD zD> (all|masked)
  • <xS yS zS>: Coordonnées initiales de la région.
  • <xE yE zE>: Coordonnées finales de la région.
  • <xD yD zD>: Coordonnées initiales de la région à tester.
  • (all|masked): all teste tous les blocs, l'air y compris. masked teste tous les blocs excepté l'air.
Validation
if: Valide si les régions comparées sont strictement identiques.
unless: Valide si les régions comparées ne sont pas strictement identiques.
Exemple
/execute if blocks 0 0 0 10 10 10 20 20 20 masked run tellraw @a {"text":"Région identique !"}: Annonce à tous les joueurs le message "Région identique !" si tous les blocs des régions testées, excepté l'air, sont identiques.

entity[modifier | modifier le wikicode]

Teste si l'<entité> existe, c'est-à-dire qu'au moins une entité a été trouvée.
Syntaxe
(if|unless) entity <entité>
  • <entité>: Entité ou sélecteur d'entité à tester.
Validation
if: Valide si au moins une entité est trouvée à partir du sélecteur <entité>.
unless: Valide si aucune entité n'est trouvée à partir du sélecteur <entité>.
Exemple
/execute if entity @e[type=cow] run tellraw @a {"text":"Il y a des steaks dans le coin!"}: Annonce à tous les joueurs le message "Il y a des steaks dans le coin!" si au moins une entité de type Vache existe sur la carte.

score (comparateur)[modifier | modifier le wikicode]

Teste si le score de <cible> se rapporte au score de <source> basé sur le critère choisi.
Syntaxe
(if|unless) score <cible> <objectifCible> (<|<=|=|>=|>) <source> <objectifSource>
  • <cible>: Entité ou sélecteur d'entité à tester.
  • <objectifCible>: Nom de l'objectif à récupérer de <cible>.
  • <source>: Entité ou sélecteur d'entité à comparer avec <cible>.
  • <objectifSource>: Nom de l'objectif à récupérer de <source>.
Validation
if: Valide si la comparaison des scores <objectifCible> et <objectifSource> est vraie.
unless: Valide si la comparaison des scores <objectifCible> et <objectifSource> est fausse.
Exemple
/execute if score Notch Vie < Dinnerbone Vie run tellraw @a {"text":"Dinnerbone résiste mieux!"}: Annonce à tous les joueurs le message "Dinnerbone résiste mieux!" si le score Vie de Notch est strictement inférieur à celui de Dinnerbone.

score (intervalle)[modifier | modifier le wikicode]

Teste si le score de <cible> est compris dans l'intervalle de <intervalle> basé sur le critère choisi.
Syntaxe
(if|unless) score <cible> <objectif> matches <intervalle>
  • <cible>: Entité ou sélecteur d'entité à tester.
  • <objectif>: Nom de l'objectif à récupérer de <cible>.
  • <intervalle>: Intervalle à tester (par exemple : 1, 1..5).
Validation
if: Valide si le score <objectif> est bien compris dans l'intervalle <intervalle>.
unless: Valide si le score <objectif> n'est pas compris dans l'intervalle <intervalle>.
Exemple
/execute if score Notch Vie matches 17.. Vie run tellraw @a {"text":"Notch est en forme!"}: Annonce à tous les joueurs le message "Notch est en forme!" si son score Vie est supérieur ou égal à 17.

Arguments de stockage[modifier | modifier le wikicode]

Les arguments de stockage permettent de sauvegarder le résultat ou le nombre de succès d'arguments de condition ou de la sous-commande dans un objet prédéfini par le jeu. Il est nécessaire de spécifier le type de sauvegarde à effectuer avant de choisir dans quel objet s'effectue la sauvegarde. Voici la liste des types de sauvegarde :

  • result: Enregistre le résultat de la sous-commande ou des arguments de condition. Par exemple, si vous tentez de récupérer un score et qu'il vaut 7, c'est 7 qui sera enregistré dans votre objet.
  • success: Enregistre le nombre de fois où la sous-commande ou les arguments de condition se sont exécutés avec succès. Fonctionne avec les sélecteurs. Par exemple, si une commande seule s'est soldée par un succès sur plusieurs entités, le nombre de succès sera enregistré dans votre objet.

Notez que tous les arguments de stockage doivent se situer avant la sous-commande oet les arguments de condition afin de pouvoir sauvegarder ce que vous voulez. Notez également que vous pouvez ajouter autant d'arguments de stockage que vous le souhaitez. Cependant vous ne pourrez en mettre qu'un seul par sous-commande ou par argument de condition. La valeur est stockée une fois la commande execute entièrement exécutée. Si une commande échoue (success égal 0), result sera toujours défini sur 0. Le résultat attendu de chaque commande sera précisé.

block[modifier | modifier le wikicode]

Sauvegarde la valeur dans un tag NBT d'un bloc. Ceci ne fonctionne que sur les entités de blocs. Notez que l'argument fonctionne pour tous types de blocs mais qu'elle n'a aucun effet si ce n'est pas une entité de bloc.
Syntaxe
store (result|success) block <x y z> <chemin> (byte|double|float|int|long|short)
  • <x y z>: Coordonnées du bloc où est enregisté la donnée.
  • <chemin>: Chemin de la donnée NBT. Est de la forme foo.bar[0]."A [crazy name]".baz
    • foo.bar signifie que l'enfant de foo est bar.
    • foo[0] signifie l'élément 0 de foo.
    • Des chaînes de caractères entre "" peuvent être utilisées si le nom d'une clé doit être échappé.
  • (byte|double|float|int|long|short): Le type de donnée dans laquelle est enregistrée la valeur. Correspond à des types de variables Java.
Exemple
/execute store result block 0 64 0 RecordItem.Count byte run scoreboard players get Notch Vie: En admettant que le bloc en 0 64 0 est un Jukebox, le score Vie de Notch sera enregistré dans le nombre d'item que possède le Jukebox.

bossbar[modifier | modifier le wikicode]

Sauvegarde dans la valeur ou dans la valeur maximale d'une barre de boss.
Syntaxe
store (result|success) bossbar <id> (value|max)
  • <id>: Identifiant de la barre de boss.
  • (value|max): Type de paramètre de la barre de boss que vous souhaitez utiliser pour sauvegarder votre valeur.
Exemple
/execute store result bossbar foo:bar value run data get entity Notch Health: Enregistre la vie de Notch dans la barre de boss foo:bar.

entity[modifier | modifier le wikicode]

Sauvegarde la valeur dans un tag NBT d'une entité.
Syntaxe
store (result|success) entity <entité> <chemin> (byte|double|float|int|long|short)
  • <entité>: Entité existante. Une seule entité uniquement.
  • <chemin>: Chemin de la donnée NBT. Est de la forme foo.bar[0]."A [crazy name]".baz
    • foo.bar signifie que l'enfant de foo est bar.
    • foo[0] signifie l'élément 0 de foo.
    • Des chaînes de caractères entre "" peuvent être utilisées si le nom d'une clé doit être échappé.
  • (byte|double|float|int|long|short): Le type de donnée dans laquelle est enregistrée la valeur. Correspond à des types de variables Java.
Exemple
/execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]: Place une Selle sur les cochons qui se trouve dans un rayon de 5 blocs autour d'un joueur.

score[modifier | modifier le wikicode]

Sauvegarde la valeur dans un tableau de score <objectif> d'une <entité>.
Syntaxe
store (result|success) score <entité> <objectif>
  • <entité>: Entité existante. Une seule entité uniquement.
  • <objectif>: Nom de l’objectif. L'objective doit exister.
Exemple
/execute store result score Notch Foo run data get entity Notch Health: Enregistre la vie de Notch dans son score Foo.

Historique[modifier | modifier le wikicode]

Version officielle
1.13 17w45a Ajout de la nouvelle syntaxe de /execute.
17w45b /execute store à été retravaillé.
18w02a Ajout des nouveaux modificateur facing, positioned, rotated, in et anchored
Ajout de la nouvelle condition if score ... matches ....
18w05a Ajout d'un nouvel objet de stockage store (result|success) bossbar ....
Promotional Content