Guides
FehlerbehebungImportOutputDiff

Warum Ihr Minecraft-Befehl nicht funktioniert

9 Min. Lesezeit

Die meisten fehlerhaften Befehle schlagen aus einem von vier Gründen fehl: Der Befehl zielt auf die falsche Minecraft-Version ab, der Selektor stimmt mit nichts überein, JSON oder NBT ist fehlerhaft oder der Befehl verwendet nur Java-Daten in Bedrock. NBTForge hilft, indem es unterstützte Befehle in typisierte Felder umwandelt, Warnungen anzeigt und die Output während der Bearbeitung sichtbar hält.

Identifizieren Sie zunächst den Fehlertyp und folgen Sie dann der Checkliste, bevor Sie den Befehl erneut ausführen.
Fügen Sie den fehlerhaften Befehl zuerst in Import ein und bestätigen Sie dann die Java-Edition und das Versionsziel.
Halten Sie die Output sichtbar, während Sie den Befehl korrigieren, und verwenden Sie nach jeder Änderung Diff, damit die eigentliche Änderung offensichtlich ist.

Ergebnis

Ein wiederholbarer Befehls-Debugging-Durchgang, der Syntax-, Ziel-, Versions- und Editionsprobleme isoliert, bevor Sie ihn erneut einfügen.

Verwandtes Modul öffnenImport, Output, DiffFehlerhafte Befehle debuggen

Empfohlener Weg

  1. Fügen Sie den Befehl in die Importleiste ein und prüfen Sie, ob NBTForge ihn an ein visuelles Modul weiterleiten kann.
  2. Stellen Sie Edition und Version so ein, dass sie mit der Welt übereinstimmen, in der der Befehl ausgeführt wird.
  3. Lesen Sie die Ausgabewarnungen, bevor Sie Felder ändern, insbesondere beim Wechsel zwischen Java und Bedrock.
  4. Überprüfen Sie die Zielselektoren separat mit einem einfachen Testbefehl, bevor Sie die NBT-Nutzlast dafür verantwortlich machen.
  5. Verwenden Sie Diff nach jedem Fix, damit Sie wissen, welcher Teil des Befehls tatsächlich geändert wurde.

Beginnen Sie mit einer Versionsinkongruenz

Ein aus einer aktuellen Java-Welt kopierter Befehl kann in Java 1.20.4 oder älter fehlschlagen, weil die Elementkomponentensyntax noch nicht existierte. Auch das Umgekehrte ist üblich: Das alte Element NBT kann von einer älteren Welt akzeptiert werden, schlägt jedoch fehl oder verhält sich nach der Änderung der Elementkomponente 1.20.5 anders.

Legen Sie zuerst die NBTForge-Version fest und generieren Sie dann die Output neu. Wenn sich die Form des Befehls nach dem Versionswechsel ändert, betrachten Sie dies als echten Syntaxunterschied und nicht als kosmetische Neufassung.

  • Verwenden Sie Java 1.20.4 oder älter für Beispiele für Legacy-Elemente NBT.
  • Verwenden Sie Java 1.20.5+ für die Output von Elementen im Komponentenstil.
  • Verwenden Sie „Bedrock Stable“ nur, wenn die Befehlsfamilie von der Bedrock-Syntax unterstützt wird.

Trennen Sie Selektorfehler von Nutzlastfehlern

Ein gültiger Befehl kann fehlerhaft erscheinen, wenn der Selektor keiner Entität oder dem falschen Spieler entspricht. Testen Sie den Selektor mit einem kleinen Befehl wie einem Titel, Tellraw oder einem Effekt, bevor Sie einen langen Summon oder Give Payload debuggen.

Wenn ein Selektor Distanz, Punkte, Tags, Teams oder NBT-Filter enthält, entfernen Sie die Filter nacheinander, bis der Befehl wieder mit der Übereinstimmung beginnt. Fügen Sie dann in möglichst kleinen Schritten wieder Filter hinzu.

Überprüfen Sie Anführungszeichen und verschachtelte Daten

Lange Befehle brechen normalerweise um verschachtelte JSON-Textkomponenten, maskierte Anführungszeichen, Elementnamen, lore-Zeilen oder handgeschriebene NBT herum. Wenn der Befehl sichtbaren Player-Text enthält, erstellen Sie diesen Text im visuellen Editor neu, anstatt Anführungszeichen manuell zu bearbeiten.

NBTForge ist nach dem Import am nützlichsten, da es eine große Zeichenfolge in kleinere typisierte Felder umwandelt. Bearbeiten Sie ein Feld, überprüfen Sie die Output und vermeiden Sie die gleichzeitige Änderung mehrerer verschachtelter Abschnitte.

  • Namen und lore schlagen oft fehl, weil der Text JSON doppelt maskiert ist.
  • Bücher können fehlschlagen, wenn der Seitentext Anführungszeichen ohne Escapezeichen enthält.
  • Benutzerdefinierte Daten können fehlschlagen, wenn geschweifte Klammern oder Klammern nicht in der richtigen Reihenfolge geschlossen werden.

Versenden Sie das kopierte Artefakt

Verwenden Sie diese Anleitung, um das Artefakt zu erstellen, das ein Spieler oder Kartenersteller tatsächlich ausführen wird: einen kopierten Befehl, ein bestelltes Project-Paket oder eine Datenpaketressource. Die abschließende Überprüfung sollte für die kopierte Output erfolgen, nicht nur für den bearbeitbaren Builder-Status.

Wenn der Workflow versionensensitiv ist, kennzeichnen Sie die Zielversion neben dem Befehl. Wenn Selektoren, Scoreboards, Bossbars, Tags, Beutetabellen oder die Projektreihenfolge verwendet werden, testen Sie diese Abhängigkeiten in einer sauberen Welt, bevor Sie das Setup veröffentlichen.

Vergleichen Sie für Live-Beispiele zum Debuggen die Befehlsvoreinstellung für Zombie-Reitspinne, Voreingestellter Befehl zum Beschwören des Spinnenjockeys und Preset für die loot des Feuerbosses von Blaze Emperor.

  • Kopieren Sie von Output für einen Befehl und von Project für bestellte Pakete.
  • Halten Sie die Varianten Java, Bedrock und Snapshot getrennt.
  • Testen Sie zunächst destruktive Selektoren mit harmloser Output.
  • Aktualisieren Sie zugehörige Presets, wenn der Leitfaden zum kanonischen Workflow wird.

Verwandte Guides und Presets

FAQ

Warum funktioniert ein Befehl in einer Welt, in einer anderen jedoch nicht?

Die häufigste Ursache ist eine Nichtübereinstimmung der Minecraft-Version oder -Edition. Die Java-Elementsyntax, Snapshot-Funktionen und die Bedrock-Befehlsunterstützung können unterschiedlich sein, auch wenn der Befehl ähnlich aussieht.

Sollte ich einen langen Befehl manuell korrigieren?

Nur für kleine Änderungen. Importieren Sie bei langen Befehlen für Gegenstände, Beschwörungen, Text oder Datenpakete den Befehl und bearbeiten Sie die Felder visuell, damit Anführungszeichen und verschachtelte Daten leichter zu überprüfen sind.

Wann sollte dieser Leitfaden ein Project-Paket werden?

Verwenden Sie Project, wenn der Workflow mehr als einen Befehl benötigt, eine Einrichtungs- und Bereinigungsreihenfolge hat oder nach dem Testen erneut bearbeitet werden muss. Einmalige Befehle können in Output verbleiben.