CommandBlock Résolu Comment setblock une commande complexe dans un commandblock

michris

Aventurier
8 Mai 2019
33
1
9
31
Bonjour , j'ai rechercher comment faire /setblock command_block contenant une commande et j'ai trouvé , sa a marché mais j'ai voulu mettre une commande plus "complexe" , et la commande a échoué.

C'est: /setblock ~ ~-3 ~ command_block 0 replace {BlockEntityTag:{Command:"/testfor @p[r=3] {Inventory:[{id:"minecraft:emerald",Count:64b}]}"}}

Erreur : Data tag parsing failed: Unexpected token 'm' at: minecraft:emerald",Count:64b}]}"

J'ai tenté d'enlever les guillemets pour l'id mais sa a juste cassé la commande (le command block apparu sera vide)

PS : version 1.8.9 vanilla
 
Dernière édition:

michris

Aventurier
8 Mai 2019
33
1
9
31
Enfaites j'ai compris le problème , mais je sais quand meme pas le résoudre , les premiers guillements apres 'id' sont considérés comme la fin de la commande , donc la suite est incomprise mais je sais pas comment effectué ma commande sans mettre les guillemets
 

Patato-carafe

Patate à grandes oreilles
28 Novembre 2014
235
57
140
Ailleurs
Il me semble qu'il suffit de mettre un backslash devant les guillemets mal interprétés... Essaye et regarde si ça marche.
 

michris

Aventurier
8 Mai 2019
33
1
9
31
Comme ça ?

/setblock ~ ~-3 ~ command_block 0 replace {BlockEntityTag:{Command:\"/testfor @p[r=3] {Inventory:[{id:"minecraft:emerald",Count:64b}]}\"}}

Je ne sais pas quel guillemets dont tu parles , pourrais-tu me copier la commande comme tu le vois car celui que je viens d'écrire (avec en vert les modifications) ne marche pas.

J'ai aussi essayer de mettre a ces endroits 2 backslash , mais sans succès non plus, enfin le command block a bien spawn , mais la commande est vide

Il me semble qu'il suffit de mettre un backslash devant les guillemets mal interprétés... Essaye et regarde si ça marche.
 

Patato-carafe

Patate à grandes oreilles
28 Novembre 2014
235
57
140
Ailleurs
Je pensais à quelque chose comme ça :
Code:
/setblock ~ ~-3 ~ command_block 0 replace {BlockEntityTag:{Command:"/testfor @p[r=3] {Inventory:[{id:\"minecraft:emerald\",Count:64b}]}"}}
Je vais vérifier tout à l'heure, essaye déjà ça

EDIT : en fait, à moins qu'elle ait changée depuis la 1.8, mais je ne m'en rappelle pas, la syntaxe de ta commande est fausse : tu dois indiquer les NBT tags avant le "0 replace"
EDIT2 : après avoir vérifié, ta syntaxe est en fait juste pour la 1.8, mon mauvais... De plus, la commande que je te propose semble pouvoir fonctionner, essaye.
 
Dernière édition:

michris

Aventurier
8 Mai 2019
33
1
9
31
Je pensais à quelque chose comme ça :
Code:
/setblock ~ ~-3 ~ command_block 0 replace {BlockEntityTag:{Command:"/testfor @p[r=3] {Inventory:[{id:\"minecraft:emerald\",Count:64b}]}"}}
Je vais vérifier tout à l'heure, essaye déjà ça

EDIT : en fait, à moins qu'elle ait changée depuis la 1.8, mais je ne m'en rappelle pas, la syntaxe de ta commande est fausse : tu dois indiquer les NBT tags avant le "0 replace"
EDIT2 : après avoir vérifié, ta syntaxe est en fait juste pour la 1.8, mon mauvais... De plus, la commande que je te propose semble pouvoir fonctionner, essaye.

Je viens d'essayer ta commande , mais comme la mienne ; ça fait bien pop le command_block , mais il ne contient pas la commande que je voulais avoir

EDIT: Je sais pas si c'est car en 1.8 et 1.8.9 certaines commandes ont été renouvelé mais en tout cas , meme ta commande alors que tu l'as testé et réussi ne marche pas pour moi bizarrement , pourrais-tu essayer en 1.8.9 exactement stp ?
 
Dernière édition:

Patato-carafe

Patate à grandes oreilles
28 Novembre 2014
235
57
140
Ailleurs
Je n'ai même pas essayé en 1.8 ^^ ; j'ai un peu la flemme de re-télécharger une vieille version de Minecraft, surtout que je ne vois pas vraiment comment t'aider plus, je ne connais pas suffisamment les commandes 1.8.9 pour te dire autre chose que le fait que de tout temps, les backslash ont servi à indiquer que le guillemet ne ferme pas le texte, mais en fait partie.
 

michris

Aventurier
8 Mai 2019
33
1
9
31
Ah d'accord bah pas grave alors , j'attendrais une autre réponse ou je modifierai mes commandsblocks

EDIT : Nan c'est bon j'ai trouvé l'erreur , c'est que le "BlockEntityTag" était pour la commande de /give alors qu'enfaites pour le /setblock , il n'y a pas ça et il fallait bel et bien mettre les backslash devant les guillemets de l'id.

-> ça donne sa : /setblock ~ ~1 ~ command_block 0 replace {Command:"/testfor @p[r=3] {Inventory:[{id:\"minecraft:emerald\",Count:64b}]}"}

EDIT 2 : Je passe le topic en résolu
 
Dernière édition: