Veri Paketi Yüklenmiyor mu? Klasör Yapısı ve Eşleşmesi Gereken Üç İsim
/datapack list komutunda görünmeyen bir veri paketinin sorunları kodda değil, yolunda yatar. İşte tam ağaç yapısı, ad alanı kuralı ve yeniden adlandırılan klasörler.
/datapack list hiçbir şey göstermiyor veya paketi devre dışı olarak gösteriyor. Neredeyse her zaman JSON dosyası sorunsuz, klasörler ise yanlıştır.
Ağaç Yapısı
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Üç ismin eşleşmesi gerekir ve bunlardan biri pek belirgin değildir:
- Paket kökündeki
pack.mcmeta—data/'in içinde değil, yanında. data/<namespace>/— sizin ad alanınız (namespace), küçük harflerle, boşluksuz. Bu,my_namespace:my_functioniçinde önek (prefix) haline gelir.- Kategori klasör adları, bunlar değişti ve genellikle sorunun kaynağıdır.
Klasörler Tekil Hale Getirildi
Bu durum birçok paketi ve öğreticiyi bozdu:
| Eski | Güncel |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Çoğul adları kullanan bir paket yüklenir — /datapack list içinde görünür — ancak hiçbir şey yapmaz, ki bu da setin en kafa karıştırıcı hata modudur. tags/ çoğul kaldı, ve tags/function/ ise içinde tekil hale geldi. Evet, bu tutarsız.
Bir Şeyi Otomatik Olarak Çalıştırma
İki özel etiket:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
data/minecraft/'e dikkat edin, kendi ad alanınız değil — etiket Minecraft'a aittir, işaret ettiği fonksiyonlar ise size:
{ "values": ["my_namespace:setup"] }
Sırayla Teşhis Etme
/datapack list— eğer paket hiç listelenmiyorsa,pack.mcmetaeksik, hatalı biçimlendirilmiş veya bir seviye çok derinde.- Listeleniyor ama devre dışı —
/datapack enable "file/my_pack".file/önekine ve tırnak işaretlerine dikkat edin. - Listeleniyor ve etkin ama etkisiz — yanlış
pack_formatveya çoğul klasör adları. /reloadve sohbeti okuyun. Fonksiyonlardaki sözdizimi hataları orada ortaya çıkar, sessizce değil.
Sıkıştırılmış mı Değil mi
Her ikisi de çalışır. Sıkıştırılmış demek, kaynak paketlerinde olduğu gibi zip kökünde pack.mcmeta demektir. Klasör biçimi geliştirme sırasında daha kolaydır çünkü /reload yeniden sıkıştırmaya gerek kalmadan düzenlemeleri algılar.
Sunucu Yerleşimi
Bir sunucuda yol <world>/datapacks/ şeklindedir, burada <world>, server.properties içindeki level-name değeridir — sunucu kökü değil. Paketi sunucu klasörüne bırakmak, sunucu tarafındaki en yaygın hatadır.
Mevcut klasör adları, geçerli bir pack.mcmeta ve zaten bağlı bir yükleme etiketi ile bir paket oluşturun, ardından Datapack Studio ile hazır indirin.