Errore di "Bracket con sbilanciamento delle parentesi graffe" con questo codice del block comandi, cosa sto facendo male?

Sto cercando di creare un forziere che si chiama 'io' che ha un altro baule all'interno chiamato 'II' che ha un altro baule all'interno chiamato 'III' che ha un altro baule all'interno chiamato 'IV' che ha un altro scrigno chiamato 'V' che ha un pezzo di carta chiamato "Un messaggio importnte …" e ha una frase che dice

呪 分 自身 解放 解放 る 方法 あ り り す 呪 文 文 し 一度 一度 一度 た ち 魂 を し し 我 我 我 我 我 我 い い い い い い い い い い – 私 た ち は 話 き き 音 音 音 音 音 音 音 音 音 音 音 音 音 音 音 音 き き き き き き き聞 こ え て い ま す. だ か ら, 失敗 は 避 け ら れ な い. そ し て, 私 は 今 ま で 私 の 中 の 悪 魔 で, 私 の 内部 賭 け に 入 る 後悔. 不滅 か. 魂 の ひ っ た く り. ジ ェ イ ク 対 ゲ イ リ ー · ク ル ッ ク. 野 望 は 過 大 評 価さ れ.

Continuo a ricevere 'Bracket ricci sbilanciati' each volta che provo a usare questo command. Ho controllato con Notepad ++, sono abbastanza sicuro che le parentesi graffe siano corrette? Ecco il command qui sotto, ma cosa sto sbagliando?

/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 importnt message...",Lore:[自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。]}}}]}}}]}}}}],display:{Name:"I"}}} 

Ti mancano sicuramente parentesi.

Nota: sebbene questa domanda abbia già una risposta con il codice fisso, penso che valga la pena di sapere come risolverlo da solo , soprattutto per le persone che si imbattono in questa domanda in seguito. Quindi, ti insegnerò una tecnica per trovare facilmente queste parentesi mancanti.


background

Parliamo dei comandi di Minecraft e perché sono necessarie le parentesi:

I comandi di Minecraft sono un linguaggio di programmazione molto semplice. Questa lingua usa parentesi per separare e interpretare le diverse aree del codice. Usa parentesi graffe (parentesi graffe) { } per marcare oggetti / oggetti e parentesi quadre [ ] per creare liste di quegli oggetti / oggetti,

Ogni parentesi aperta, sia quadrata [ o parentesi graffa { , ha bisogno di una parentesi di chiusura corrispondente ( } , ] ) nell'ordine corretto, altrimenti Minecraft si confonde quando tenta di interpretarli. L'ordine è al contrario , o specchiato, dall'aspetto della parentesi corrispondente.

Ad esempio: [ [ { } ] ] o { { [ { } ] } }


Il process

Ora, per mettere alla prova questa conoscenza: come si trovano facilmente le parentesi mancanti, in righe di command lunghe centinaia di caratteri?

Risposta? Distendilo per renderlo più facile da leggere. Aggiungiamo degli spazi tra le parole, perché è difficile da interpretare come mi sembra di capire? Quindi perché non fare lo stesso con il tuo codice di command?

Per prima cosa, scarica e apri Notepad ++

  • È gratuito e davvero utile per questo genere di cose. Fidati di me, lo uso each giorno, non tornerai mai al normale Blocco note di Windows, che non ha le funzionalità di cui abbiamo bisogno per questa cosa:
  • Notepad ++ evidenzierà la parentesi attualmente selezionata e la parentesi chiusa corrispondente mentre il cursore scorre su di essi.
  • Ti dà anche linee verticali tratteggiate che scendono dalle parentesi per aiutare ad allineare la parentesi chiusa.

Ora, sul process:

  1. Nella window di Notepad ++, incolla la row di command di Minecraft e inizia a spostare il cursore attraverso le frecce della tastiera, carattere per carattere.
  2. Ogni volta che raggiungi una parentesi aperta o una virgola, premi Invio per spostarla (e il codice rimanente) su una nuova row.
  3. Spostare un altro spazio (dopo la parentesi) e aggiungere un'altra nuova row e una scheda per spostare il resto del command Minecraft.
  4. Quando raggiungi le parentesi di chiusura, spostali anche sulla loro stessa linea e usa ShiftTab per spostarlo di nuovo in linea con quello di apertura (rimuovendo la scheda extra).
    • Mentre lo fai, noterai che Notepad ++ aggiunge linee tratteggiate che collegano insieme le parentesi di apertura e chiusura. Usalo come guida per allinearli.
  5. Una volta che hai distanziato tutto, cerca le incongruenze con le parentesi di chiusura. le parentesi di chiusura dovrebbero seguire una linea retta a causa della spaziatura delle linguette, fino in fondo alla pagina.
  6. Nota e correggi eventuali parentesi mancanti o fuori uso che vedi.

Un esempio

Usando il codice spezzato nella domanda come esempio, ho intenzione di mostrarti come risolvere il problema direttamente. Quindi, ecco il command originale di 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 importnt message...",Lore:[自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。]}}}]}}}]}}}}],display:{Name:"I"}}} 

Per risparmiarci qualche problema, ho già fatto i passaggi da 2 a 4 (spaziatura e novità) per voi, quindi non wherete preoccuparvi troppo. Basta copiare il codice analizzato in questo modo e incollarlo in 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 importnt message...", Lore: [自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。 ] } } } ] } } } ] } } } } ], display: { Name:"I" } } } の悪魔で/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 importnt message...", Lore: [自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。 ] } } } ] } } } ] } } } } ], display: { Name:"I" } } }後悔/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 importnt message...", Lore: [自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。 ] } } } ] } } } ] } } } } ], display: { Name:"I" } } }/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 importnt message...", Lore: [自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。 ] } } } ] } } } ] } } } } ], display: { Name:"I" } } } 

Seguire le linee verticali tratteggiate verso il basso e utilizzare l'evidenziazione delle parentesi per cercare di allineare e allineare le parentesi. Ancora una volta, scrivendo il codice in questo modo con spazi di tabulazione e ritorni a capo, le parentesi di chiusura dovrebbero allinearsi in una fila ordinata. Tuttavia, avrai notato le discrepanze di cose che non si sono già abbastanza allineate. Va bene! Fai del tuo meglio per allinearli correttamente, stiamo per risolverli:

1. Primo parentesi quadrata mancante:

Squadra quadrata mancante / fuori posto sotto la voce "Articoli"

Per risolvere questo problema, inserisci una parentesi quadra chiusa dopo la parentesi graffa sulla linea sopra (usa Maiuscole-Tab per spostarla in linea con la parentesi aperta sopra:

Staffa quadrata di chiusura inserita

Noterai che dopo averlo inserito, Notepad ++ riconosce che la parentesi quadra inferiore è fuori posto. Quindi vai avanti e allinea nuovamente tutte le parentesi utilizzando le tabs, e troverai rapidamente:

2. Manca la parentesi graffa:

Conosci il trapano, inserisci una parentesi graffa di chiusura per sistemare anche questo:

Parentesi ricurva fuori posto.

Ancora una volta, dopo aver inserito la parentesi mancante, Notepad ++ riconosce che alcuni sono fuori posto. Riposizionare le parentesi rimanenti finché non si allineano con la linea evidenziata.

3. Squadra quadrata mancante

Potresti aver notato che l'object ' display: ', che era fuori luogo, prima, sta iniziando a tornare in linea con il resto di loro:

parentesi quadra mancante

Inserendo qui una parentesi quadra, e dovrebbe apparire molto più sul posto dopo aver ripassato un'altra volta. Noterai inoltre che ora hai una parentesi di chiusura extra che non corrisponde a nulla. Questo è ok, basta rimuoverlo completamente.

Hai capito bene ora. Continua fino a quando tutto è allineato e ha una parentesi corrispondente.


finalizzazione

Hai finito! È anche ansible utilizzare la function di sostituzione incorporata di Notepad ++ per rimuovere spazi e tabulazioni. Accedilo usando Ctrl + H. Usa la modalità 'estesa' e usa \n per rimuovere le nuove righe e \t per rimuovere le tabs:

Sostituisci Menu


Questo dovrebbe essere! Ora puoi copiare il tuo command e dovrebbe funzionare bene. *

* Bene, alless in termini di parentesi. Questo presuppone che tu l'abbia codificato per fare quello che vuoi che faccia pure!

Penso che ci siano alcuni errori relativi alle parentesi (anche ricci come quelli quadrati)

Prova questo block:

 /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 importnt message...",Lore:[自分自身を解放する方法があります。呪文はもう一度私たちの魂を得る。しかし、我々はそれを話さなければならない - 私たちは話すないとき - 音が出ないを。我々は、すべての耳が聞こえています。だから、失敗は避けられない。そして、私は今まで私の中の悪魔で、私の内部賭けに入る後悔。不滅か。魂のひったくり。ジェイク対ゲイリー·クルック。野望は過大評価され。]}}}]}}]}}],display:{Name:"I"}}}]}}]} 

Puoi farlo manualmente e basta creare il primo baule e poi selezionarlo, ora diventerà + NBT nella scrittura viola. Puoi continuare a farlo quanto ne hai bisogno.