ID của khối, vật phẩm và thực thể: không gian tên, trạng thái khối và những trường hợp khác biệt
ID không phải lúc nào cũng giống tên vật phẩm, và ID khối không giống ID vật phẩm của nó. Bài viết này sẽ giải thích các quy tắc đặt tên, những thay đổi tên gây lỗi lệnh cũ và cách trạng thái khối hoạt động.
Mỗi lệnh thất bại với thông báo "Unknown item" (Vật phẩm không xác định) hoặc "Unknown block" (Khối không xác định) đều là một vấn đề về ID, và các quy tắc phức tạp hơn nhiều so với việc chỉ "viết thường với dấu gạch dưới".
Không gian tên là bắt buộc trong dữ liệu
minecraft:diamond_sword
my_pack:custom_sword
Các lệnh cho phép bạn bỏ qua minecraft: — /give @s diamond_sword vẫn hoạt động. Nhưng các tệp JSON thì không. Một bảng chiến lợi phẩm (loot table) hoặc công thức (recipe) với diamond_sword trần sẽ thất bại, đôi khi không báo lỗi. Hãy viết không gian tên ở mọi nơi và vấn đề sẽ biến mất.
ID khối và ID vật phẩm là hai thứ khác nhau
Một số khối không có vật phẩm, một số vật phẩm lại đặt một khối khác:
| Vật phẩm | Khối được đặt |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot, nhưng các biến thể trong chậu là các khối riêng biệt |
| — | minecraft:water, minecraft:fire, minecraft:air không có vật phẩm |
/setblock lấy ID khối. /give lấy ID vật phẩm. Sử dụng sai là nguyên nhân phổ biến nhất gây ra lỗi "ID đó không tồn tại" khi vật phẩm hoặc khối rõ ràng là có.
Trạng thái khối nằm trong dấu ngoặc vuông
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
Trạng thái là thuộc tính của khối, không phải vật phẩm — bạn không thể đưa một cầu thang đã được xoay sẵn, vì việc xoay được quyết định khi đặt. Các thuộc tính không được chỉ định sẽ lấy giá trị mặc định của chúng.
waterlogged thường gây nhầm lẫn: nó tồn tại trên cầu thang, phiến, hàng rào và hàng chục khối khác, và việc đặt một khối mà không có nó sẽ loại bỏ Thuỷ (Water) đang có ở đó.
Những thay đổi tên gây lỗi lệnh cũ
Một số ID đã thay đổi và các ID cũ đơn giản là không còn được nhận diện nữa:
| Cũ | Hiện tại |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign và các loại tương tự |
grass là trường hợp khó chịu nhất, vì grass_block vẫn tồn tại và là một thứ khác. Các lệnh cũ sử dụng grass cho cây giờ đây sẽ âm thầm không nhắm vào gì cả.
ID thực thể
Hầu hết có thể dự đoán được, với một số ngoại lệ: minecraft:snow_golem chứ không phải snowman, minecraft:mooshroom chứ không phải mushroom_cow, và mỗi vật thể bay là một thực thể riêng — minecraft:arrow, minecraft:spectral_arrow, minecraft:trident.
Các thực thể về mặt kỹ thuật là thực thể khối (block entities) — rương, phễu, biển báo — không xuất hiện trong danh sách thực thể và không thể được /summon. Chúng được đặt dưới dạng khối và chỉnh sửa bằng /data.
Thẻ tốt hơn danh sách
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
Bất cứ nơi nào một lệnh hoặc JSON chấp nhận một thẻ, việc sử dụng thẻ sẽ giúp lệnh hoặc JSON đó vẫn hoạt động khi Mojang thêm các loại gỗ mới. Việc mã hóa cứng tất cả tám ID ván gỗ thì không.
Tìm kiếm mọi ID khối, vật phẩm và thực thể, cùng với trạng thái khối và các thẻ mà mỗi ID thuộc về, trong Trình duyệt ID Khối, Vật phẩm & Thực thể.