MC Toolkit

Panduan / Perintah & Data

Predikat dengan satu kondisi tidak punya pembungkus, dan itu perubahan bentuk yang nyata

Satu kondisi adalah objek itu sendiri. Dua atau lebih dibungkus dalam all_of atau any_of. Plus delapan tipe kondisi, dan mengapa pembalikan adalah pembungkus, bukan flag.

Predikat datapack adalah file JSON yang mendeskripsikan suatu kondisi, dan strukturnya berubah tergantung pada berapa banyak kondisi yang kamu miliki. Itulah bagian yang sering menjebak orang yang menyalin contoh lalu memperluasnya.

Satu bukan berarti daftar berisi satu

conditionsbentuk keluaran
0{}
1objek kondisi itu sendiri
2+{ "condition": "minecraft:all_of", "terms": [ … ] }

Tidak ada pembungkus di sekitar satu kondisi. Tambahkan kondisi kedua dan seluruh file berubah bentuk — kondisi asli menjadi elemen pertama dari array terms di bawah root baru. Apa pun yang membaca atau menghasilkan ini harus menangani kedua bentuk, dan contoh yang dibangun dari satu kondisi tidak menunjukkan bentuk yang kamu perlukan begitu kamu menambahkan kondisi lain.

any_of adalah kombinator alternatifnya: semua term harus lolos, atau salah satu di antaranya.

Pembalikan juga pembungkus, bukan flag

Tidak ada field "invert": true. Kondisi yang dinegasikan dibungkus:

{ "condition": "minecraft:inverted", "term": { …the original condition… } }

Perhatikan term, bentuk tunggal — inverted hanya menerima satu, sedangkan all_of dan any_of menerima array terms. Dua kunci yang terlihat mirip dengan bentuk berbeda, dan pembalikan berlaku per kondisi, jadi sebuah predikat bisa mencampur term yang dibalik dan term biasa dengan bebas di dalam satu all_of.

Delapan tipe kondisi yang ditawarkan builder

entity_properties            random_chance
int_value_check              random_chance_with_enchanted_bonus
weather_check                time_check
location_check               match_tool

Game ini memiliki dua puluh tipe kondisi; ini adalah delapan yang dicakup oleh pemilih builder. Dua di antaranya berganti nama, dan builder masih menulis id lama — random_chance_with_looting dan value_check — yang ditolak oleh versi terkini, jadi ganti nama keduanya di output.

random_chance_with_enchanted_bonus adalah yang perlu diperhatikan: ia menerima peluang tanpa enchantment dan sebuah enchanted_chance yang berskala dengan level enchantment (Penjarahan, dalam tabel vanilla sendiri), jadi probabilitasnya bergantung pada apa yang dipegang oleh pembunuhnya. Itu membuatnya bermakna hanya ketika ada pembunuh dalam konteks — ini kondisi laju drop, bukan gerbang acak serbaguna. random_chance biasa adalah yang sebaiknya dipakai di tempat lain.

int_value_check (dan float_value_check) menguji apakah suatu angka berada dalam rentang tertentu. Pemeriksaan nilai di builder menawarkan sumber level enchantment atau ekspresi kustom yang kamu edit ke dalam JSON secara manual setelah menyalinnya.

Pemilihnya persis sama dengan set vanilla

Perlu diketahui saat kamu memeriksa apakah id bioma atau struktur itu nyata: dropdown di builder bukanlah sampel pilihan.

  • 66 bioma — semua bioma hingga 26.2; dappled_forest dari 26.3 tidak ada, jadi ketik manual
  • 34 struktur — sama, hingga 26.2; 18 struktur abandoned_camp_* yang ditambahkan 26.3 tidak terdaftar
  • 18 tag blok dan 15 item, yang memang subset yang berfungsi

Itu diverifikasi terhadap data registri game itu sendiri, bukan diasumsikan, jadi jika suatu id tidak ada dalam daftar bioma atau struktur dan bukan salah satu tambahan 26.3, id tersebut tidak ada. Untuk tag blok dan item justru sebaliknya: ketidakhadiran hanya berarti pemilih tidak mendaftarkannya, dan mengetik id sendiri tidak masalah.

Pembuat predikat dan kondisi →

Panduan lainnya

Lihat semua →