0 votes

Comment faire pour que les éléments exécutent des commandes ?

Je veux faire en sorte qu'une carotte sur bâton exécute des commandes, mais je veux que différentes carottes sur bâton aient des noms différents et exécutent des commandes différentes. Est-ce possible ?

2voto

Jan Lachnitt Points 1

Pour les commandes d'exécution si vous tenez l'objet, vous pouvez utiliser as o at le lecteur, et utiliser le nbt pour vérifier la présence de la SelectedItem du joueur.

execute as @a[nbt = {SelectedItem: {id: "minecraft:carrot_on_a_stick", tag: {custom_tag: 1b}}}] at @s run say test

Voici un bref résumé :

  • as change l'exécuteur de la commande comme l'entité, ce qui signifie que vous pouvez utiliser @s pour cibler le soi de l'exécuteur juste après avoir déclaré en tant que qui l'exécuter.
  • at modifie le contexte positionnel de la commande, ce qui signifie qu'elle exécutera la commande par rapport à l'entité.
  • Il n'est pas nécessaire d'utiliser les deux, mais cela dépend vraiment de ce que vous faites.
  • @a[...] indique des joueurs, ce qui signifie qu'il ne sélectionnera que des joueurs.
  • nbt vérifie la NBT de l'entité, qui dans ce cas, nous vérifions la NBT du joueur. SelectedItem étiquette
  • {SelectedItem: {id: "minecraft:carrot_on_a_stick", tag: {custom_tag: 1b}}} fait référence à l'élément qui va être vérifié. Nous allons définir le id à la chaîne "minecraft:carrot_on_a_stick" puisque nous allons vérifier cet élément. Quant à tag il s'agit de la NBT de l'élément. Dans ce cas, nous allons vérifier la présence de l'élément custom_tag: 1b NBT dans l'article.

L'élément de l'exemple fourni peut être obtenu en exécutant cette commande :

give <player> minecraft:carrot_on_a_stick{custom_tag: 1b}

Maintenant, si vous voulez vérifier si un joueur a interagi avec cette carotte spécifique sur un bâton, vous aurez besoin d'un tableau d'affichage avec l'attribut minecraft.used:minecraft.carrot_on_a_stick critère. Quant au pourquoi, c'est un bug qui serait utile dans notre cas.

Après avoir créé l'objectif, vous vérifierez si un joueur a un score dans l'objectif du tableau d'affichage, en utilisant la fonction scores argument du sélecteur de cible. Ainsi, la commande entière ressemblerait à ceci :

execute as @a[nbt = {SelectedItem: {id: "minecraft:carrot_on_a_stick", tag: {custom_tag: 1b}}}, scores = {<objective> = 1..}] at @s run say test
  • <objective> étant le nom de votre objectif de tableau d'affichage nouvellement créé.
  • 1.. est un intervalle qui vérifierait si le joueur a 1 ou plus de valeur dans le dit objectif

Ensuite, vous remettez à zéro le score du joueur dans l'objectif en exécutant un /scoreboard players commandement :

scoreboard players reset @a[scores = {<objective> = 1..}] <objective>

0voto

Sayne Points 27

Vous pourriez utiliser quelque chose comme /execute at @a[nbt={SelectedItem:{id:"minecraft:<id>",name:"<name>"}}] run <command> afin d'exécuter la commande, en remplaçant tout ce qui est dans <> par l'option appropriée. Vous pouvez exécuter ceci autant de fois que vous le souhaitez, en changeant ces 3 sélecteurs, tant que ceux-ci sont dans des blocs de commande répétitifs, soit constamment alimentés, soit avec "toujours actif" activé.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X