La commande /execute (1.8 et +)
I) Qu'est-ce que le /execute ?
Le /execute est une commande permettant d'exécuter une commande directement aux coordonnées relatives d'un joueur ou d'une entité sans que celui-ci/celle-ci l'exécute elle-même.
II) Les bases du /execute
1 - "Forme constructive" de la commande
Le /execute est une commande dans laquelle vous devrez employer un /execute suivi d'une autre commande au choix (Que vous choisirez biensûr).
La "forme constructive" de la commande est simple :
/execute suivi d'un sélecteur (@p @a @r @e) suivi des coordonnés relatives que vous voulez attribuer au sélecteur ~ ~ ~ suivi d'une commande au choix (qui sera exécute aux coordonnées relatives que vous avez attribué au sélecteur).
- Par exemple, la commande :
/execute @a ~ ~ ~ summon ArmorStand ~ ~ ~
fera apparaître un ArmorStand SUR tous les joueurs connectés (@a).
- Par exemple, la commande :
/execute @r ~1 ~ ~ setblock ~ ~ ~ stone
fera apparaître un bloc de stone 1 bloc à l'Est d'un joueur aléatoire (@r).
Et cela marche avec toutes les autres commandes.
2 - Ciblage de joueurs/entités ayant des critères particuliers
Il est possible avec le /execute de ne cibler uniquement des joueurs/entités ayant des critères particuliers.
Comme par exemple un score de scoreboard.
Imaginons que nous voulons que nous voulons poser un bloc de redstone sur les joueurs ayant le score deathCount à 1 :
/execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ setblock ~ ~ ~ redstone_block
Cette commande posera un bloc de redstone SUR tous les joueurs ayant le score deathCount à 1.
Jusqu'à là, rien de bien compliqué, on peut utiliser n'importe quel sélecteur avancé avec le /execute. En revanche ! Si l'on veut cibler les joueurs ayant le score deathCount à 1 ET le score dummy à 2, il y a un petit problème ! Dans ce cas, on peut tout simplement créer une chaîne de /execute afin que tous les sélecteurs se combinent.
- Par exemple, la commande :
/execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ execute @a[score_dummy_min=2,score_dummy=2] ~ ~ ~ setblock ~ ~ ~ redstone_block
posera un bloc de redstone sur TOUS les joueurs ayant le score deathCount à 1 ET le score dummy à 2.
Comme vous pouvez le voir dans le dernier exemple de commande, on a combiné 2 /execute.
Il est possible d'en combiner à l'infini.
III) Coordonnées Numériques combinées aux Coordonnées Relatives
Une super fonctionnalité du /execute est qu'il est possible sur cette commande de combiner les Coordonnées Numériques (Exemple de coordonnées numériques : -45 62 536) avec des Cordonnées Relatives (Exemple de coordonnées relatives : ~1 ~ ~ ).
- Par exemple, la commande :
/execute @p ~ 56 ~ setblock ~ ~ ~ stone
Imaginons que le joueur (Le plus proche de l'endroit où la commande est exécutée) soit au 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.
- Par exemple, la commande :
/execute @p ~ 75 ~ setblock ~ ~ ~ stone
Imaginons que le joueur (Le plus proche de l'endroit où la commande est exécutée) soit au coordonnées 123 62 -754.
Alors la commande citée dans le dernier exemple fera apparaître un bloc de stone aux coordonnées 123 75 -754.
Et cela marche également pour les coordonnées X et Z. (12 53 65 -> X=12, Y=53, Z=65)
IV) Ciblage de joueurs/entités différents ayant des critères particuliers
1 - Ciblage de joueurs & entités différent(e)s
Il est possible avec le /execute de cibler des joueurs/entités ayant des critères particuliers comme vous avez pu le constater dans le II)-2).
Voici maintenant une partie "secondaire" de ce paragraphe, mais dans des conditions plus avancées.
Nous avons vu dans la première partie qu'il était possible de cibler des joueurs & entités ayant un voir plusieurs critère(s) particulier(s). Dans cette partie, nous allons apprendre à cibler des joueurs & entités ayant des critères particuliers différents.
Pour cela, nous allons devoir de nouveau passer par des combinaisons de /execute.
- Par exemple, la commande :
/execute @e[name=Exemple] ~ ~ ~ execute @e[name=Tutoriel] ~ ~ ~ setblock ~ ~ ~ stone
fera apparaître un bloc de stone sur tous les joueurs s'appelant "Exemple" ainsi que tous les joueurs s'appelant "Tutoriel".
Comme vous pouvez le voir, nous avons ciblé deux types d'entités différentes.
Dans la première partie, on ciblait les joueurs ayant deux scores à tel ou tel nombre précisément.
Dans cette partie là, on cible deux groupes d'entités différentes -> Dans le dernier exemple, on cible le groupe d'entités se nommant "Exemple" et un autre se nommant "Tutoriel" (Car il est impossible d'avoir deux noms à la fois dans le jeu. En revanche, il est possible d'avoir deux scores à la fois (même plus), comme on a pu le voir dans la première partie).
- Par exemple, la commande :
/execute @e[type=Zombie] ~ ~ ~ execute @e[type=Skeleton] ~ ~ ~ execute @e[type=Spider] ~ ~ ~ setblock ~ ~ ~ stone
fera apparaître un bloc de stone uniquement sur tous les zombies / squelettes / araignées de la map.
Encore une fois, on cible différents groupes d'entités. (Car il est impossible d'être à la fois un zombie, à la fois un squelette et à la fois une araignée dans le jeu).