Màn hình hộp thoại: Xây dựng menu thực thụ mà không cần mod
Hộp thoại Datapack mang đến cho bạn một cửa sổ thực sự với các ô nhập liệu và nút bấm. Đây là cấu trúc JSON, cách một nút chạy lệnh và so sánh với cách hack menu bằng Quyển sách.
Các menu máy chủ trước đây thường được tạo bằng những Quyển sách có các trang có thể nhấp, hoặc GUI Rương được giả lập bằng khung vật phẩm. Hộp thoại đã thay thế cả hai bằng một màn hình thực tế.
Hộp thoại là gì
Một tệp JSON trong datapack mô tả một cửa sổ:
data/<namespace>/dialog/welcome.json
{
"type": "minecraft:notice",
"title": { "text": "Welcome" },
"body": [{ "type": "minecraft:plain_message",
"contents": { "text": "Pick a class to begin." } }],
"action": { "label": { "text": "Continue" } }
}
Sau đó /dialog show @p my_pack:welcome.
Các loại
| Loại | Hình dạng |
|---|---|
notice | văn bản cộng với một nút đóng |
confirmation | có / không, mỗi nút có hành động riêng |
multi_action | một lưới các nút |
server_links | danh sách liên kết tích hợp |
dialog_list | một menu mở các hộp thoại khác |
multi_action là công cụ chính — nó là công cụ chọn lớp, cửa hàng, danh sách dịch chuyển.
Các nút chạy lệnh
{ "label": { "text": "Warp to spawn" },
"action": { "type": "minecraft:run_command", "command": "/spawn" } }
Giống như clickEvent trong trò chuyện, lệnh này chạy với tư cách là Người chơi nhấp chuột, ở cấp độ quyền của họ. Một nút gọi lệnh chỉ dành cho op sẽ không có tác dụng gì đối với Người chơi bình thường. Cách giải quyết tiêu chuẩn là mục tiêu trigger: nút chạy /trigger warp set 1 và một hàm ticking thực hiện phần đặc quyền.
Ô nhập liệu
"inputs": [
{ "type": "minecraft:text", "key": "name", "label": { "text": "Your name" }, "max_length": 16 },
{ "type": "minecraft:boolean", "key": "pvp", "label": { "text": "Enable PvP" } },
{ "type": "minecraft:single_option", "key": "class", "options": [
{ "id": "mage", "display": { "text": "Mage" } },
{ "id": "rogue", "display": { "text": "Rogue" } } ] }
]
Các giá trị đến dưới dạng đối số macro cho hàm mà nút gọi, vì vậy hàm nhận là một macro:
$say Welcome $(name), you chose $(class)
Tiền tố $ trên dòng và $(key) để thay thế. Đó là toàn bộ cơ chế liên kết, và đó là điều khiến các hộp thoại thực sự hữu ích chứ không chỉ để trang trí.
Tại sao điều này tốt hơn cách hack bằng Quyển sách
- Nó là một màn hình, vì vậy nó tạm dừng nhập liệu thay vì nằm trong lịch sử trò chuyện.
- Các ô nhập liệu thực sự tồn tại. Một Quyển sách chỉ có thể cung cấp các liên kết.
- Không yêu cầu vật phẩm. Không có gì để mất, bỏ hoặc sao chép.
- Nó đóng sạch sẽ và không thể cuộn lại.
Điều duy nhất mà Quyển sách vẫn làm tốt hơn là đọc văn bản dài — phần thân hộp thoại không phải là nơi tốt để chứa ba trang truyền thuyết.
Kiểu điểm tham chiếu
Cùng một công cụ bao gồm các điểm tham chiếu trên thanh định vị (locator-bar waypoints), là một registry datapack riêng biệt kiểm soát màu sắc và hình ảnh đánh dấu được hiển thị cho Người chơi hoặc vị trí được theo dõi. Hữu ích cho các điểm đánh dấu đội mà thanh bossbar sẽ quá xâm phạm.
Xây dựng màn hình hộp thoại với các ô nhập liệu và nút bấm, và tùy chỉnh kiểu điểm tham chiếu, trong Trình tạo kiểu điểm tham chiếu & ô nhập liệu hộp thoại.