Id blok, item, dan entitas: namespace, block state, dan yang berbeda
Sebuah id tidak selalu sama dengan nama itemnya, dan id blok tidak sama dengan id itemnya. Aturan penamaan, perubahan nama yang merusak perintah lama, dan di mana block state berperan.
Setiap perintah yang gagal dengan pesan "Unknown item" atau "Unknown block" adalah masalah id, dan aturannya lebih rumit daripada sekadar "huruf kecil dengan garis bawah".
Namespace tidak opsional di dalam data
minecraft:diamond_sword
my_pack:custom_sword
Perintah mengizinkanmu menghilangkan minecraft: — /give @s diamond_sword berfungsi — begitu juga file JSON: diamond_sword tanpa namespace di dalam loot table atau resep akan diselesaikan menjadi minecraft:diamond_sword. Tetap tulis namespace di mana pun; ini menjaga id milikmu sendiri tetap tidak ambigu dan salah ketik di namespace mudah terlihat.
Id blok dan id item adalah hal yang berbeda
Beberapa blok tidak punya item, beberapa item menempatkan blok yang berbeda:
| Item | Blok yang ditempatkan |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot, tetapi varian dalam pot adalah blok terpisah |
| — | minecraft:water, minecraft:fire tidak punya item (air ada sebagai item hanya sebagai tumpukan kosong) |
/setblock menerima id blok. /give menerima id item. Menggunakan yang salah adalah sumber paling umum dari "id itu tidak ada" padahal objeknya jelas-jelas ada.
Block state berada di dalam tanda kurung siku
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
State adalah properti dari blok, bukan item — rotasi item tangga biasa ditentukan saat penempatan. Pengecualiannya adalah item yang membawa komponen block_state, yang propertinya diterapkan setelah penempatan. Properti yang tidak ditentukan akan memakai nilai defaultnya.
waterlogged sering menjebak orang: properti ini ada pada tangga, slab, pagar, dan puluhan lainnya, dan menempatkan blok tanpa properti ini akan menghapus air yang ada di sana.
Perubahan nama yang merusak perintah lama
Sebagian id berubah dan id lama kini tidak dikenali sama sekali:
| Lama | Sekarang |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign dan sejenisnya |
grass adalah yang paling menyakitkan, karena grass_block masih ada dan merupakan hal yang berbeda. Perintah lama yang memakai grass untuk tanaman tersebut kini gagal sebagai blok yang tidak dikenal.
Id entitas
Sebagian besar bisa diprediksi, dengan pengecualian: minecraft:snow_golem bukan snowman, minecraft:mooshroom bukan mushroom_cow, dan setiap proyektil adalah entitas tersendiri — minecraft:arrow, minecraft:spectral_arrow, minecraft:trident.
Entitas yang secara teknis adalah block entity — peti, hopper, tanda — tidak muncul di daftar entitas dan tidak bisa di-/summon. Mereka ditempatkan sebagai blok dan diedit dengan /data.
Tag lebih baik daripada daftar
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
Di mana pun sebuah perintah atau JSON menerima tag, menggunakannya akan tetap berfungsi saat Mojang menambahkan jenis kayu baru. Menuliskan ketiga belas id papan secara hardcode tidak akan bertahan.
Cari setiap id blok, item, dan entitas, lengkap dengan block state dan tag tempatnya bernaung, di Block, Item & Entity ID Browser.