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

michris

Aventurier
8 Mai 2019
33
1
9
32
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:
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
 
Il me semble qu'il suffit de mettre un backslash devant les guillemets mal interprétés... Essaye et regarde si ça marche.
 
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.
 
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:
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:
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.
 
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: