Pakiet danych się nie ładuje? Struktura folderów i trzy nazwy, które muszą się zgadzać
Pakiet danych, który nie pojawia się na liście /datapack, ma problem ze ścieżką, a nie z kodem. Oto dokładna struktura, zasada przestrzeni nazw i foldery, które zostały zmienione.
/datapack list nic nie pokazuje lub wyświetla pakiet jako wyłączony. Prawie zawsze JSON jest w porządku, a foldery są błędne.
Struktura
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Trzy nazwy muszą się zgadzać, a jedna z nich nie jest oczywista:
pack.mcmetaw katalogu głównym pakietu — obokdata/, nie w jego środku.data/<namespace>/— Twoja przestrzeń nazw, małymi literami, bez spacji. Staje się to prefiksem wmy_namespace:my_function.- Nazwy folderów kategorii, które się zmieniły i są zazwyczaj winowajcą.
Nazwy folderów zostały zmienione na liczbę pojedynczą
To zepsuło wiele pakietów i wiele samouczków:
| Stare | Obecne |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Pakiet używający nazw w liczbie mnogiej ładuje się — pojawia się w /datapack list — i po prostu nic nie robi, co jest najbardziej mylącym trybem awarii. tags/ pozostało w liczbie mnogiej, podobnie jak tags/function/, które stało się liczbą pojedynczą w jego wnętrzu. Tak, to jest niespójne.
Automatyczne uruchamianie czegoś
Dwa specjalne tagi:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
Zwróć uwagę na data/minecraft/, a nie na własną przestrzeń nazw — tag należy do Minecrafta, funkcje, na które wskazuje, należą do Ciebie:
{ "values": ["my_namespace:setup"] }
Diagnostyka krok po kroku
/datapack list— jeśli pakiet w ogóle nie jest wymieniony, brakujepack.mcmeta, jest źle sformatowany lub znajduje się o jeden poziom za głęboko.- Wymieniony, ale wyłączony —
/datapack enable "file/my_pack". Zwróć uwagę na prefiksfile/i cudzysłowy. - Wymieniony i włączony, ale bezczynny — błędny
pack_formatlub nazwy folderów w liczbie mnogiej. /reloadi przeczytaj czat. Błędy składni w funkcjach pojawiają się tam, a nie po cichu.
Spakowany czy nie
Obie opcje działają. Spakowany oznacza pack.mcmeta w katalogu głównym zipa, dokładnie tak samo jak w przypadku pakietów zasobów. Forma folderu jest łatwiejsza podczas tworzenia, ponieważ /reload wykrywa zmiany bez ponownego pakowania.
Umiejscowienie na serwerze
Na serwerze ścieżka to <world>/datapacks/, gdzie <world> jest wartością level-name w server.properties — a nie katalogiem głównym serwera. Umieszczenie pakietu w folderze serwera to najczęstszy błąd po stronie serwera.
Złóż pakiet z aktualnymi nazwami folderów, prawidłowym pack.mcmeta i już podłączonym tagiem ładowania, a następnie pobierz go gotowego do wstawienia, za pomocą Datapack Studio.