3 votes

Erreur de "parenthèses déséquilibrées" avec ce code de bloc de commande, qu'est-ce que je fais mal ?

J'essaie de faire un coffre appelé 'I' qui contient un autre coffre appelé 'II' qui contient un autre coffre appelé 'III' qui contient un autre coffre appelé 'IV' qui contient un autre coffre appelé 'V' qui contient un morceau de papier appelé 'Un message important...' et qui a un lore disant

- - -

J'obtiens le message 'Unbalanced Curly Brackets' à chaque fois que j'essaie d'utiliser cette commande. J'ai vérifié avec Notepad++, je suis presque sûr que les accolades sont correctes ? Voici la commande ci-dessous, mais qu'est-ce que je fais de mal ?

/setblock ~ ~ ~ chest 0 replace {Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"II"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"III"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"IV"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"V"},Items:[{id:339,Count:1,Slot:13,tag:{display:{Name:"An important message...",Lore:[ -  - ·]}}}]}}}]}}}}],display:{Name:"I"}}}

15voto

Robotnik Points 36143

Il vous manque définitivement des parenthèses.

<strong>Note : </strong>Bien que cette question ait déjà un <a href="https://gaming.stackexchange.com/a/207990/28182">réponse </a>avec le code fixe, je pense que ça vaut la peine de savoir <a href="https://i.stack.imgur.com/JSKEW.jpg" rel="nofollow noreferrer">comment le réparer soi-même </a>surtout pour les personnes qui rencontreront cette question plus tard. Je vais donc vous apprendre une technique pour trouver facilement ces parenthèses manquantes.


Contexte

Parlons des commandes de Minecraft, et pourquoi les parenthèses sont nécessaires :

Les commandes de Minecraft sont un langage de programmation très simple. Ce langage utilise des parenthèses pour l'aider à séparer et à interpréter les différentes zones du code. Il utilise des crochets (curly brackets) { } pour marquer les éléments/objets, et les crochets [ ] pour faire des listes de ces éléments/objets,

Chaque tranche ouverte, que ce soit carré [ o accolade { doit être accompagnée d'une parenthèse fermante correspondante ( } , ] ) dans le bon ordre, sinon Minecraft est confus quand il essaie de les interpréter. L'ordre est en marche arrière ou en miroir, de l'apparence du support correspondant.

Par exemple : [ [ { } ] ] o { { [ { } ] } }


Le processus

Maintenant, pour mettre ces connaissances à l'épreuve : Comment trouver facilement les parenthèses manquantes, dans des lignes de commande de plusieurs centaines de caractères ?

Réponse ? Espacez le texte pour le rendre plus facile à lire. Nous ajoutons des espaces entre les mots, parce que c'est difficile d'interpréter ce que je dis, non ? Alors pourquoi ne pas faire de même avec votre code de commande ?

Commençons par le commencement, Télécharger et ouvrez Notepad++

  • C'est gratuit y vraiment utile pour ce genre de choses. Croyez-moi, je l'utilise tous les jours, vous ne reviendrez jamais au Bloc-notes ordinaire de Windows, qui n'a pas les fonctionnalités dont nous avons besoin pour ce genre de choses :
  • Notepad++ met en évidence la parenthèse sélectionnée et la parenthèse proche correspondante lorsque le curseur passe dessus
  • Il permet également de tracer des lignes verticales en pointillé à partir des crochets pour aider à aligner le crochet de fermeture.

Maintenant, parlons du processus :

  1. Dans la fenêtre Notepad++, collez votre ligne de commande Minecraft et commencez à déplacer le curseur en utilisant les flèches du clavier, caractère par caractère.
  2. Chaque fois que vous atteignez une parenthèse ouvrante ou une virgule, appuyez sur Enter pour le déplacer (ainsi que le code restant) vers une nouvelle ligne.
  3. Déplacez un espace supplémentaire (après la parenthèse), et ajoutez une autre nouvelle ligne et un Tab pour faire passer le reste du commandement de Minecraft.
  4. Lorsque vous arrivez à des crochets fermants, déplacez-les également sur leur propre ligne, et utilisez Shift - Tab pour le remettre en ligne avec celui qui s'ouvre (en supprimant l'onglet supplémentaire).
    • Au cours de cette opération, vous remarquerez que Notepad++ ajoute des lignes en pointillé qui relient les crochets ouvrants et fermants. Utilisez-les comme guide pour les aligner.
  5. Une fois que vous avez tout espacé, recherchez les incohérences dans les crochets de fermeture. Les crochets de fermeture doivent tous suivre une ligne droite en raison de l'espacement des tabulations, tout au long de la page.
  6. Notez et réparez tous les crochets manquants ou hors d'usage que vous voyez.

Un exemple

En utilisant le code cassé dans la question comme exemple, je vais vous montrer comment résoudre le problème de manière pratique. Voici donc la commande originale de Minecraft :

/setblock ~ ~ ~ chest 0 replace {Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"II"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"III"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"IV"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"V"},Items:[{id:339,Count:1,Slot:13,tag:{display:{Name:"An important message...",Lore:[ -  - ·]}}}]}}}]}}}}],display:{Name:"I"}}}

Pour nous épargner quelques soucis, j'ai déjà effectué les étapes 2 à 4 (espacement et soulignement) pour vous, vous n'avez donc pas à vous en soucier outre mesure. Copiez simplement le code décomposé comme ceci, et collez-le dans Notepad++ :

/setblock ~ ~ ~ chest 0 replace 
{
    Items:
    [
        {
            id:54,
            Count:1,
            Slot:13,
            tag:
            {
                display:
                {
                    Name:"II"
                },
                Items:
                [
                    {
                        id:54,
                        Count:1,
                        Slot:13,
                        tag:
                            {
                                display:
                                {
                                    Name:"III"
                                },
                                Items:
                                [
                                    {
                                        id:54,
                                        Count:1,
                                        Slot:13,
                                        tag:
                                        {
                                            display:
                                            {
                                                Name:"IV"
                                            },
                                            Items:
                                            [
                                                {
                                                    id:54,
                                                    Count:1,
                                                    Slot:13,
                                                    tag:
                                                    {
                                                        display:
                                                        {
                                                            Name:"V"
                                                        },
                                                        Items:
                                                        [
                                                            {
                                                                id:339,
                                                                Count:1,
                                                                Slot:13,
                                                                tag:
                                                                {
                                                                    display:
                                                                    {
                                                                        Name:"An important message...",
                                                                        Lore:
                                                                        [
                                                                             -  - ·
                                                                        ]
                                                                    }
                                                                }
                                                            }
                                                        ]
                                                    }
                                                }
                                        }
                                            ]
                                    }
                            }
                    }
            }
                               ],
                                display:
                                {
                                    Name:"I"
                                }
        }
}

Suivez les lignes verticales en pointillés vers le bas et utilisez le surlignage des parenthèses pour essayer de faire correspondre et d'aligner les parenthèses. Une fois de plus, lorsque vous écrivez du code de cette manière, avec des espaces de tabulation et des sauts de ligne, les crochets de fermeture devraient tous s'aligner en une rangée bien nette. Cependant, vous aurez remarqué que certaines choses ne sont pas encore tout à fait alignées. Ce n'est pas grave ! Faites de votre mieux pour les aligner correctement, nous sommes sur le point de les corriger :

1. Le premier support carré est manquant :

Square bracket missing/out of place under the 'Items' heading

Pour résoudre ce problème, insérez un crochet fermant après l'accolade sur la ligne ci-dessus (utilisez la touche Maj-Tab pour l'aligner avec le crochet ouvrant ci-dessus) :

Closing square bracket inserted

Vous remarquerez qu'après avoir inséré cette ligne, Notepad++ reconnaît que le crochet inférieur n'est pas à sa place. Allez-y et alignez à nouveau toutes les parenthèses en utilisant des tabulations, et vous trouverez rapidement ce qui suit :

2. Support de boucle manquant :

Vous connaissez la chanson, insérez une parenthèse fermante pour régler ce problème :

Curly bracket out of place.

Une fois encore, après avoir inséré la parenthèse manquante, Notepad++ reconnaît que certaines ne sont pas à leur place. Replacez les crochets restants jusqu'à ce qu'ils soient alignés avec la ligne en surbrillance.

3. Support carré manquant

Vous avez peut-être remarqué que l'élément ' display: L'objet ', qui était chemin qui n'était pas à sa place, avant, commence à se remettre en ligne avec les autres :

square bracket missing

Insérez un crochet ici, et vous devriez avoir l'air beaucoup plus à l'aise après avoir re-tabulé une fois de plus. Vous remarquerez également que vous avez maintenant un crochet fermant supplémentaire qui ne correspond à rien. Ce n'est pas grave, il suffit de le supprimer complètement.

Vous avez le coup de main maintenant. Continuez jusqu'à ce que tout soit aligné et ait un support correspondant.


Finalisation

C'est fait ! Vous pouvez même utiliser la fonction de remplacement intégrée de Notepad++ pour supprimer les espaces et les tabulations. Accédez-y en utilisant Ctrl + H . Utilisez le mode "étendu", et utilisez \n pour supprimer les retours à la ligne, et \t pour retirer les languettes :

Replace Menu


Ça devrait être ça ! Vous pouvez maintenant copier votre commande et elle devrait fonctionner correctement.

* Eh bien, en termes de parenthèses, du moins. En supposant que vous l'ayez codé pour faire ce que vous voulez qu'il fasse !

3voto

Daniel Points 581

Je pense qu'il y a des erreurs concernant vos parenthèses (aussi bien les curly que les square)

Essayez ce bloc :

/setblock ~ ~ ~ chest 0 replace {Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"II"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"III"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"IV"},Items:[{id:54,Count:1,Slot:13,tag:{display:{Name:"V"},Items:[{id:339,Count:1,Slot:13,tag:{display:{Name:"An important message...",Lore:[ -  - ·]}}}]}}]}}],display:{Name:"I"}}}]}}]}

2voto

lantaren Points 1

Vous pouvez le faire manuellement en créant le premier coffre, puis en le bloquant. Il deviendra alors +NBT en écriture violette. Vous pouvez continuer à faire cela autant que vous le souhaitez.

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