Avant-propos
Depuis le début de mon blog, j’ai utilisé un certain nombre de sélecteurs sans forcement expliquer leur portée. Prenons comme exemple la téléportation qui peut vite devenir chaotique en cas de mauvaise utilisation des sélecteurs.

Téléportation vers d’autres dimensions
Découvre comment mettre en place des téléportations vers d’autres dimensions avec des commandes.

Commandes répétées : exemple des portails
Il peut être utile de mettre en place des commandes s’exécutant à chaque tick. Exemple avec des portails.
Commandes, blocs et fonctions
Dans Minecraft, on peut utiliser le chat pour entrer une commande en débutant notre phrase par “/”.
/tp @p 7 42 88
Dans un bloc de commande, nous pouvons utiliser la même commande mais sans utiliser le “/”.
tp @p 7 42 88
Enfin, si nous enregistrons cette commande dans un fichier teleportation.mcfunction dans un datapack, nous pourrons utiliser une autre commande pour l’éxécuter.
/function mondatapack/teleportation
C’est particulièrement utile pour exécuter plusieurs commandes avec un seul appel, un peu comme une macro. Ca permet également de simplifier l’utilisation des commandes : il est plus facile de se souvenir d’un nom de fonction que de coordonnées exactes.
@p : le joueur le plus proche
Le sélecteur @p est sans doute le plus rependu. Une des première commandes utilisée dans Minecraft est :
/tp @p 7 42 88
Cette commande téléporte le joueur le plus proche vers les coordonnées indiquées. Mais si cette commande est exécutée en permanence (avec la fonction d’un portail par exemple), elle téléportera le joueur le plus proche, même s’il est à l’autre bout du jeu. Si un seul joueur est connecté, il sera téléporté à chaque tick, ce qui n’est pas l’effet attendu. C’est pourquoi dans mes commandes de portail je précise les coordonnées d’exécution et surtout un rayon d’action (distance).
teleport @p[x=7,y=42,z=106,distance=..2] 7 42 88
Ainsi, seul le joueur le plus proche dans un rayon de 2 blocs maximum sera téléporté. J’approfondirai le sujet dans le prochain article.
@s : l'entité exécutant la commande
Sélecteur le plus récent ajouté en 1.12, @s permet de ne cibler que le joueur exécutant l’action. Imaginons un bouton posé sur un bloc de commande contenant :
tp @p 7 42 88
Avant la 1.12, le joueur le plus proche était téléporté. Donc si un joueur était près du bloc de commande et qu’un autre joueur, plus éloigné, appuyait sur le bouton, ce n’est pas le joueur ayant déclenché le bouton mais bien l’autre, plus proche, qui était téléporté.
tp @s 7 42 88
En utilisant le sélecteur @s, on s’assure désormais que seul le joueur ayant appuyé sur le bouton sera téléporté.
@e : toutes les entités
Le sélecteur @e est le plus puissant. Il cible toutes les entités : monstres, joueurs mais aussi les objets au sol, les pancartes, cadres, tableaux, … C’est pourquoi il est essentiel de l’accompagner d’arguments.
teleport @e[x=7,y=42,z=106,distance=..2] 7 42 88
Ici, seules les entités dans un rayon de 2 blocs de la commande seront téléportées. Ainsi, une vache peu très bien traverser le monde. Pour ne téléporter que des joueurs, on pourra préciser le type d’entité :
teleport @e[x=7,y=42,z=106,distance=..2,type=player] 7 42 88
@a : tous les joueurs
Même si la commande indiquée précédemment est correcte il sera plus simple d’utiliser le sélecteur @a pour cibler tous les joueurs.
teleport @a[x=7,y=42,z=106,distance=..2] 7 42 88
Là encore, préciser un rayon d’action et des coordonnées sera souvent nécessaire pour éviter de téléporter tous les joueurs connectés.
@r : un joueur au hasard
Le sélecteur @r est particulier car il cible un joueur au hasard.
teleport @r 7 42 88