Datapack không tải được? Kiểm tra cấu trúc thư mục và ba tên phải khớp
Một datapack không xuất hiện trong /datapack list thường do lỗi đường dẫn, không phải lỗi mã. Đây là cấu trúc cây chính xác, quy tắc namespace và các thư mục đã được đổi tên.
/datapack list không hiển thị gì, hoặc hiển thị gói là bị vô hiệu hóa. Hầu như luôn là JSON không sao, nhưng cấu trúc thư mục bị sai.
Cấu trúc cây
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Ba tên phải khớp và một trong số đó không hiển nhiên:
pack.mcmetaở thư mục gốc của gói — nằm cạnhdata/, không nằm bên trong nó.data/<namespace>/— namespace của bạn, viết thường, không có dấu cách. Cái này sẽ trở thành tiền tố trongmy_namespace:my_function.- Tên thư mục danh mục, đã thay đổi và là nguyên nhân phổ biến nhất.
Các thư mục đã được đổi tên thành số ít
Điều này đã làm hỏng rất nhiều gói và rất nhiều hướng dẫn:
| Cũ | Hiện tại |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Một gói sử dụng tên số nhiều vẫn tải được — nó xuất hiện trong /datapack list — nhưng không làm gì cả, đây là chế độ lỗi gây nhầm lẫn nhất. tags/ vẫn giữ số nhiều, và tags/function/ trở thành số ít bên trong nó. Vâng, điều đó không nhất quán.
Chạy tự động một cái gì đó
Hai thẻ đặc biệt:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
Lưu ý data/minecraft/, không phải namespace của riêng bạn — thẻ thuộc về Minecraft, các hàm mà nó trỏ đến thuộc về bạn:
{ "values": ["my_namespace:setup"] }
Chẩn đoán theo thứ tự
/datapack list— nếu gói không được liệt kê,pack.mcmetabị thiếu, bị lỗi định dạng hoặc nằm sâu hơn một cấp.- Được liệt kê nhưng bị vô hiệu hóa —
/datapack enable "file/my_pack". Lưu ý tiền tốfile/và dấu ngoặc kép. - Được liệt kê và được bật nhưng không hoạt động — sai
pack_format, hoặc tên thư mục số nhiều. /reloadvà đọc đoạn chat. Lỗi cú pháp trong các hàm sẽ hiển thị ở đó, không im lặng.
Đã nén hay chưa
Cả hai đều hoạt động. Đã nén có nghĩa là pack.mcmeta ở thư mục gốc của tệp zip, giống hệt như đối với gói tài nguyên. Dạng thư mục dễ dàng hơn khi phát triển vì /reload sẽ nhận các chỉnh sửa mà không cần nén lại.
Vị trí trên máy chủ
Trên máy chủ, đường dẫn là <world>/datapacks/, trong đó <world> là giá trị của level-name trong server.properties — không phải thư mục gốc của máy chủ. Đặt gói vào thư mục máy chủ là lỗi phổ biến nhất ở phía máy chủ.
Tạo một gói với tên thư mục hiện tại, một pack.mcmeta hợp lệ và một thẻ tải đã được kết nối, sau đó tải xuống sẵn sàng để thả vào, với Datapack Studio.