Sélecteur de commande


Categorie : Datapacks

Poster le : 2020-04-05 04:09:25 par

Hardel

Bonjour, dans ce guide, je vais vous expliquer a quoi sert les sélecteurs pourquoi les utiliser, et tous les différents arguments qui existe.




Pour commencer, qu'est-ce qu'un sélecteur ? 

Ils permettent de cibler des entité pour lancer une commande, il est donc impensable de ne pas les utiliser.
Il existe 5 formes de sélecteur :


@aCible tous les joueurs, aussi les joueurs morts.
@pCible le joueur le plus proche.
S'il y a plusieurs joueurs à la même distance, le joueur qui s'est connecté en dernier sera ciblé.
@eCible toutes les entités.
@rCible un joueur au hasard.
Ce sélecteur peut cibler des entités autre que des joueurs, si le type est précisé.
@sCible l'entité précédemment ciblée.
Ou le lanceur de la commande.

Une sélection plus stricte peut être utiliser, c'est ce qu'on appelle les arguments d'un sélecteurs.
Si vous voulez cibler uniquement les joueurs en créatif, c'est possible, ou si vous voulez cibler uniquement les zombie qui ont moins de 10 points de vie, c'est aussi possible.
Il en existe une multitude, et nous allons tous les voir :


x, y et zDéfinie la position du sélecteur pour effectuer une recherche.Float
dx, dy et dzProlongement de la zone de recherche dans un carrée.Float
x_rotation
y_rotation
Permet de cibler les entité qui regarde dans une certain rotation.Float
distancePermet de chercher dans une certaine en zone en rond une entité.
Peut être modifier avec x,y et z
Float
gamemodepermet de cibler les joueurs dans un certain gamemode.
Valeur accepter : "creative", "survival", "spectator" et "adventure".
Texte
limitPermet de cibler un nombre maximal d'entité.
Certaine commande nécessite une limitation a 1.
Entier
levelPermet de cibler les joueurs qui possède un certain niveau.
Vous pouvez définir un Min et un Max.
Entier
scoresRegarde si le joueurs possède bien le score et si il est compris entre deux bornes.Scores
teamRegarde si le joueurs fait partie de l'équipe indiquer.Texte
nameRegarde le nom du joueurs.Texte
typePermet de spécifier le type d"entité , exemple "minecraft:zombie".
Les tags d'entité sont accepter.
Entité
tagPermet de tester les tag sur l'entité de la commande /tag.Texte
nbtExpression NBT qui est est tester sur l'entité.
Exemple : nbt={Health:10f} permet de cibler toutes les entité qui ont 10 PV.
NBT
advancementsRegarde si le joueurs a valider, un sucées.Boolean
sort

Type de tri a effectuer :

  • "nearest", pour cibler l'entité la plus proche.
  • "furtest", pour cibler l'entité la plus loin.
  • "random", pour cibler une entité aléatoire.
  • "arbitrary", n'applique aucun tri.
Texte
predicatePermet de test un prédicats, une condition écrite dans un fichier JSON.Predicats

A noter que :

Les arguments "type", "nbt" et "tag" peuvent être utiliser plusieurs fois.

L'utilisation du caractère "!" (Point d'exclamation) après le signe = (Égal), permet d'indiquer une négation, Si cette arguments renvoie Faux en temps normal alors ici il renverras vrai, il permet d'inverser la sortie.
Ou permet de cibler toutes les entité qui renvoie pas vrai.
Exemple : @a[type=!player] va cibler toutes les entité qui ne sont pas les joueurs.

Les arguments "level", "distance" et "scores" peuvent obtenir une range c'est a dire qu'il peuvent recevoir un maximum et un minimum. 
Exemple : @a[level=5..30] va permettre de cibler les joueurs qui ont un niveau entre 5 et 30.


Exemple :

/data get @e[type=item,sort=nearest,limit=1,distance=..7] items
/give àa[gamemode=creative,scores={Foo=1..5,Bar=1}] diamond
/execute as @a[type=#minecraft:skeleton] at @s run setblock ~ ~ ~ minecraft:red_concrete


Espace commentaire :