Résolu Détecter l'objet dans la main d'un porte-armure ?

creepidys

Massacreur de Mouton
26 Août 2016
17
1
19
23
Bonjour,
Je suis en train de créer une map, et j'aimerais savoir si il est possible de détecter l'objet dans la main de mon Armor Stand, j'ai une commande pour la main du joueur mais elle ne marche pas pour l’Armor stand.
(L'objet est une boussole renommé "Start", et l’Armor stand aussi)

/testfor @p {SelectedItem:{tag:{display:{Name:"Start"}}}}
(ici "Start" est la boussole)

Message d'erreur: [16:16:37] Start ne correspond pas à la structure de données requise
(et ici Start est l'Armor Stand)

Merci d'avance.
 

Spirit

Méfie-toi.
2 Mars 2014
10 309
3 049
348
25
Je ne connais pas la commande précise, mais je peux te dire que le "@p" ne fonctionne pas sur les ArmorStand qui sont des entités. Tu dois donc le remplacer par "@e[type=ArmorStand], afin de sélectionner la bonne entité. Je t'ai rajouté le "type=" pour éviter que tu te retrouves avec toutes tes entités avec l'objet, c'est une sécurité s'il y avait un problème dans ta commande, mais normalement le Name devrait suffire.
 

creepidys

Massacreur de Mouton
26 Août 2016
17
1
19
23
Ok j'ai donc mis @e[type=ArmorStand,name=Start] (là au moins on est sur), donc la commande retrouve le bon porte-armure, mais j'ai toujour l'erreur comme quoi il ne respecte pas les condition pour réussir la commande :

/testfor @e[type=ArmorStand,name=Start] {SelectedItem:{tag:{display:{Name:"Start"}}}}

Start ne correspond pas à la structure de données requise

Je pense que le problème doit venir du SelectedItem ou de l'objet à détecter, on doit pouvoir le remplacer par une boussole tout cour mais je n'ai pas la commande.
 

Spirit

Méfie-toi.
2 Mars 2014
10 309
3 049
348
25
Je sais ce qu'il me reste à faire ... @Oromis @McBooster si vous passez par là xD

Je crois qu'il faut que tu testes intégralement l'item, c'est-à-dire bien mettre explicitement "minecraft:<nom de la boussole en anglais>" puis le nom. Après je peux pas t'aider plus que ça.
 
  • J'aime
Reactions: Oromis

Syst3ms

Geek à plein temps
8 Juin 2016
56
16
28
Il faut utiliser le tag HandItems. Ta commande ressemblerait à ça :
Code:
/testfor @e[name=Start] {HandItems:[{tag:{display:{Name:"Start"}}},{}]}. Je ferais une mise au point, donc gardez l'oeil !
 

creepidys

Massacreur de Mouton
26 Août 2016
17
1
19
23
c'est bon Syst3ms, ta commande marche, j'ai juste enlevé ,{} à la fin et c'est nikel
Merci Beaucoup à tous pour votre aide !