Lệnh /give sau khi có các thành phần dữ liệu: thứ đã thay thế thẻ NBT
Phiên bản 1.20.5 đã thay thế NBT của vật phẩm bằng các thành phần dữ liệu, và hầu hết các đoạn mã /give trên mạng vẫn được viết theo cách cũ. Đây là bảng ánh xạ từ các thẻ bạn đã biết sang các thành phần hiện đang hoạt động.
Nếu bạn dán một lệnh /give từ một hướng dẫn cũ và trò chơi trả lời Unknown item tag hoặc âm thầm bỏ qua các bùa chú của bạn, thì lệnh đó được viết theo định dạng NBT trước 1.20.5. Dữ liệu vật phẩm đã chuyển sang các thành phần dữ liệu (data components), và khối {display:{Name:...}} cũ không còn được phân tích cú pháp nữa.
Hình dạng đã thay đổi
old /give @p diamond_sword{display:{Name:'"Skybreaker"'},Enchantments:[{id:sharpness,lvl:5}]}
new /give @p diamond_sword[custom_name='"Skybreaker"',enchantments={sharpness:5}]
Dùng dấu ngoặc vuông, không phải dấu ngoặc nhọn. Các thành phần là một danh sách phẳng, được phân tách bằng dấu phẩy trên ID vật phẩm.
Các ánh xạ bạn sẽ thực sự cần
| NBT cũ | Thành phần dữ liệu |
|---|---|
display:{Name:...} | custom_name |
display:{Lore:[...]} | lore |
Enchantments:[{id,lvl}] | enchantments={id:level} |
Unbreakable:1b | unbreakable={} |
CustomModelData:3 | custom_model_data=3 |
AttributeModifiers:[...] | attribute_modifiers |
display:{color:...} | dyed_color |
SkullOwner | profile |
Ba cạm bẫy
- Dấu ngoặc kép.
custom_namenhận một thành phần văn bản JSON, vì vậy một chuỗi ký tự đơn giản vẫn cần dấu ngoặc kép riêng bên trong đối số:custom_name='"Skybreaker"'. - Xóa một giá trị mặc định. Thêm tiền tố
!để loại bỏ một thành phần mà vật phẩm thường có —[!attribute_modifiers]sẽ tạo ra một thanh kiếm không có bất kỳ phần thưởng sát thương nào. - Đá nền không có cái này. Phiên bản Đá nền (Bedrock)
/givevẫn sử dụng mô hình giá trị dữ liệu và thành phần riêng của nó; một chuỗi thành phần Java sẽ không chạy ở đó.
/give Generator sẽ viết dạng thành phần cho bạn và hiển thị đầu ra cho cả hai phiên bản, vì vậy bạn có thể sao chép cái phù hợp với máy chủ bạn đang chơi.