MC Toolkit

Rehberler / Sorun Giderme

Veri paketi yüklenmiyor mu? Klasör yapısı ve eşleşmesi gereken üç isim

/datapack list komutunda görünmeyen bir veri paketinin sorunu kodda değil, yoldadır. İşte tam ağaç yapısı, ad alanı kuralı ve yeniden adlandırılan klasörler.

/datapack list hiçbir şey göstermiyor ya da paketi devre dışı olarak gösteriyor. Neredeyse her zaman JSON dosyası sorunsuzdur, klasörler 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/
    └── minecraft/
        └── tags/
            └── function/
                └── load.json

Üç ismin hizalanması gerekir ve bunlardan biri pek açık değildir:

  1. Paket kökündeki pack.mcmeta — data/ yanında, içinde değil.
  2. data/<namespace>/ — ad alanınız, küçük harfle, boşluksuz. my_namespace:my_function içindeki önek bu olur.
  3. Kategori klasörü adları — bunlar değişti ve asıl suçlu genellikle bunlardır.

Klasörler tekil hâle getirildi

Bu, birçok paketi ve birçok eğitimi bozdu:

EskiGü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 — ve hiçbir şey yapmaz; bu, grubun en kafa karıştırıcı hata biçimidir. tags/ çoğul kaldı, ancak içindeki klasörler diğer her şeyle birlikte tekile döndü — tags/functions/ artık tags/function/. Evet, bu tutarsız.

Bir şeyi otomatik ç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

Dikkat: data/minecraft/, kendi ad alanınız değil — etiket Minecraft'a aittir, işaret ettiği fonksiyonlar size aittir:

{ "values": ["my_namespace:setup"] }

Sırayla teşhis

  1. /datapack list — paket hiç listede yoksa pack.mcmeta eksik, bozuk ya da bir seviye fazla derindedir.
  2. Listede ama devre dışı — /datapack enable "file/my_pack". file/ önekine ve tırnak işaretlerine dikkat edin.
  3. Listede ve etkin ama etkisiz — çoğul klasör adları ya da minecraft yerine kendi ad alanınızda bir yükleme etiketi.
  4. /reload ve günlüğü okuyun (logs/latest.log ya da başlatıcı çıktısı). Söz dizimi hatası olan bir fonksiyon orada "Failed to load function …" ile düşürülür; sohbet yalnızca yeniden yüklemenin bittiğini söyler.

Sıkıştırılmış mı, değil mi

İkisi de çalışır. Sıkıştırılmış, pack.mcmeta zip kökünde olması demektir; tıpkı kaynak paketlerdeki gibi. Klasör biçimi geliştirme sırasında daha kolaydır çünkü /reload düzenlemeleri yeniden zip'lemeden alır.

Sunucuya yerleştirme

Bir sunucuda yol <world>/datapacks/ olur; 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.

Güncel klasör adlarıyla ve geçerli bir pack.mcmeta ile bir paket oluşturun, ardından Datapack Studio ile doğrudan bırakmaya hazır hâlde indirin — ve yükleme etiketinizi yukarıdaki gibi data/minecraft/tags/function/ içine koyun.

Datapack Studio →

Daha fazla rehber

Tümünü gör →