Retour aux bases : les sélecteurs

Après un an de tutoriels, il est temps de revenir aux bases : différencier les sélecteurs, les commandes, les fonctions.

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.

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
				
			

Pour aller plus loin

Voici d’autres articles qui pourraient t’intéresser :

Nouveautés

Bonne année 2021

Il est temps de faire le bilan de 2020 et présenter les projets pour cette nouvelle année.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Sommaire

Partager

Facebook
Twitter