Datenpaket wird nicht geladen? Die Ordnerstruktur und die drei Namen, die übereinstimmen müssen
Ein Datenpaket, das nicht in /datapack list erscheint, hat ein Pfadproblem, kein Codeproblem. Hier ist der genaue Baum, die Namensraumregel und die Ordner, die umbenannt wurden.
/datapack list zeigt nichts an oder zeigt das Paket als deaktiviert an. Fast immer ist das JSON in Ordnung und die Ordner sind falsch.
Der Baum
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Drei Namen müssen übereinstimmen, und einer davon ist nicht offensichtlich:
pack.mcmetaim Paket-Stammverzeichnis – nebendata/, nicht darin.data/<namespace>/– Ihr Namensraum, Kleinbuchstaben, keine Leerzeichen. Dies wird zum Präfix inmy_namespace:my_function.- Die Namen der Kategorieordner, die sich geändert haben und der übliche Übeltäter sind.
Die Ordner wurden in die Einzahl umbenannt
Dies hat viele Pakete und viele Tutorials kaputt gemacht:
| Alt | Aktuell |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Ein Paket, das die Pluralnamen verwendet, wird geladen – es erscheint in /datapack list – und tut einfach nichts, was der verwirrendste Fehlerfall in dieser Reihe ist. tags/ blieb im Plural, und tags/function/ wurde darin zur Einzahl. Ja, das ist inkonsistent.
Automatisches Ausführen von etwas
Zwei spezielle Tags:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
Beachten Sie data/minecraft/, nicht Ihren eigenen Namensraum – der Tag gehört Minecraft, die Funktionen, auf die er verweist, gehören Ihnen:
{ "values": ["my_namespace:setup"] }
Diagnose in der richtigen Reihenfolge
/datapack list– wenn das Paket überhaupt nicht aufgeführt ist, fehltpack.mcmeta, ist fehlerhaft oder eine Ebene zu tief.- Aufgeführt, aber deaktiviert –
/datapack enable "file/my_pack". Beachten Sie das Präfixfile/und die Anführungszeichen. - Aufgeführt und aktiviert, aber inaktiv – falsches
pack_formatoder Ordnernamen im Plural. /reloadund lesen Sie den Chat. Syntaxfehler in Funktionen tauchen dort auf, nicht stillschweigend.
Gezippt oder nicht
Beides funktioniert. Gezippt bedeutet pack.mcmeta im Zip-Stammverzeichnis, genau wie bei Ressourcenpaketen. Die Ordnerform ist während der Entwicklung einfacher, da /reload Änderungen ohne erneutes Zippen übernimmt.
Server-Platzierung
Auf einem Server ist der Pfad <world>/datapacks/, wobei <world> der Wert von level-name in server.properties ist – nicht das Server-Stammverzeichnis. Das Ablegen des Pakets im Serverordner ist der häufigste serverseitige Fehler.
Erstellen Sie ein Paket mit den aktuellen Ordnernamen, einem gültigen pack.mcmeta und einem bereits verdrahteten Lade-Tag, und laden Sie es dann mit dem Datapack Studio herunter, bereit zum Ablegen.