Détecter un compte-gouttes avec des éléments sans

J'utilisais cette commande pour utiliser une table d'artisanat personnalisée:

/execute @a ~ ~ ~ detect ~ ~-1 ~ dropper 1 {Items:[{id:minecraft:blaze_rod,Slot:1b,Count:1b,Damage:0s},{id:minecraft:blaze_rod,Slot:4b,Count:1b},{id:minecraft:stick,Slot:7b,Count:1b}]} /scoreboard players set @p LSC 1 

Mais je reçois ce message d'erreur lorsque je me place sur un compte-gouttes avec ces éléments:

Impossible d'exécuter '{Items: [{id: minecraft: blaze_rod, Slot: 1b, Count: 1b, Damage: 0s}, {id: minecraft: blaze_rod, Slot: 4b, Count: 1b}, {id: minecraft: stick , Slot: 7b, Count: 1b}]} / les joueurs de tableau de bord définissent @p LSC 1 'comme TrevMCC38

Soit dit en passant, je suis en 16w06a

2 Solutions collect form web for “Détecter un compte-gouttes avec des éléments sans”

La fonction de detect de /execute n'accepte pas les données NBT, seulement une valeur ID et Damage.

Vous devrez plutôt utiliser /testforblock , et si vous avez besoin d'une /testforblock , /testforblock -le avec CommandStats.

Conditions préalables:

Objectif de conserver la valeur CommandStats.

 /scoreboard objectives add CraftSuccess dummy 

L'application de AffectedBlocks déclenche les joueurs, ce qui définira le score du joueur en fonction de la réussite des commandes qui affectent spécifiquement les blocs, tels que /testforblock . Cela peut nécessiter de fonctionner sur une horloge dans l'éventualité où de nouveaux joueurs peuvent se joindre à tout moment.

 /stats entity @a set AffectedBlocks @a[c=1] CraftSuccess 

Pour que CommandStats modifie le score d'une cible, cette cible doit être suivie sur le tableau avant. Cela peut également être nécessaire sur une horloge pour la même raison que précédemment.

 /scoreboard players add @a CraftSuccess 0 

Détection:

Les opérations suivantes doivent être exécutées dans un ordre numérique.

  1. /testforblock les joueurs exécutent la commande nécessaire /testforblock .

     /execute @a ~ ~ ~ /testforblock ~ ~-1 ~ minecraft:dropper 1 {Items:[{id:"minecraft:blaze_rod",Slot:1b,Count:1b,Damage:0s},{id:"minecraft:blaze_rod",Slot:4b,Count:1b},{id:"minecraft:stick",Slot:7b,Count:1b}]} 
  2. En conséquence, le joueur exécutant aura son propre score "CraftSuccess" égal au nombre de blocs trouvés par la commande /testforblock . Si la commande a échoué, son score est défini sur 0. Si la commande a réussi, leur score est réglé sur 1. Vous ciblez les joueurs en fonction de leur score.

     /scoreboard players set @a[score_CraftSuccess_min=1] LSC 1 

Comme note secondaire, vous ne devriez jamais mélanger @a comme un exécuteur testamentaire et @p comme @p de la commande imbriquée si vous souhaitez cibler le même joueur. Alors que @a peut cibler des joueurs morts, @p ne peut pas. Cela signifie que, alors que l'exécuteur peut exécuter /execute pendant qu'ils sont morts, ils ne se ciblent pas et plutôt ciblent le joueur vivant le plus proche. Cela peut nuire gravement à la précision et éventuellement briser un mécanisme sensible aux cibles.

La solution consiste à utiliser le même sélecteur au besoin. Pour le ciblage des joueurs morts, vous utiliserez @a comme exécuteur avec @a[c=1] comme sélecteur imbriqué:

 /execute @a ~ ~ ~ /say @a[c=1] 

Pour les joueurs vivants, vous utiliserez @e[type=Player] avec @p :

 /execute @e[type=Player] ~ ~ ~ /say @p 

C'est aussi pour cette raison que les cibles CommandStat devraient utiliser @a[c=1] lorsque vous travaillez avec des joueurs, car cela garantit qu'il n'y aura pas de cible non intentionnelle ayant modifié leur score.

Utilisez des comparateurs car ils détectent si quelque chose a des blocs et envoie un signal redstone.

  • Comment teleporter les joueurs lorsqu'ils entrent dans une certaine zone / coordonnées
  • Compter des objets dans un coffre
  • Vérifiez si le joueur a un article, si tel est le cas, supprimez-le
  • Comment configurer le (s) Bloc (s) de commande pour tester un temps particulier et émettre un message?
  • Je ne peux pas remplacer un bloc avec un bloc de commande!
  • Comment puis-je coller des commandes sur Minecraft Command Blocks?
  • Existe-t-il un moyen de cibler la flèche à partir d'un arc OP par bloc de commande?
  • L'armure ne fournit pas de barres d'armure / protection
  • Donner aux joueurs une flèche toutes les deux secondes, éventuellement avec / remplacer
  • Comment puis-je utiliser les blocs de commandes pour empêcher les joueurs de placer des blocs sur un serveur vanilla?
  • Comment ferais-je quelque chose qui engendre quand et où une boule de neige frappe quelque chose?