หน้าจอไดอะล็อก: สร้างเมนูจริงโดยไม่ต้องใช้ม็อด
ไดอะล็อกของดาต้าแพ็กช่วยให้คุณมีหน้าต่างพร้อมช่องป้อนข้อมูลและปุ่มต่างๆ นี่คือโครงสร้าง JSON วิธีที่ปุ่มสั่งงาน และเปรียบเทียบกับวิธีแฮกเมนูด้วยหนังสือ
เมนูเซิร์ฟเวอร์เคยถูกสร้างจากหนังสือที่เขียนขึ้นซึ่งมีหน้ากระดาษที่คลิกได้ หรือ GUI หีบที่จำลองขึ้นด้วยกรอบไอเทม ไดอะล็อกเข้ามาแทนที่ทั้งสองอย่างด้วยหน้าจอจริง
ไดอะล็อกคืออะไร
ไฟล์ JSON ในดาต้าแพ็กที่อธิบายหน้าต่าง:
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" } }
}
จากนั้น /dialog show @p my_pack:welcome
ประเภทต่างๆ
| ประเภท | รูปแบบ |
|---|---|
notice | ข้อความพร้อมปุ่มปิดหนึ่งปุ่ม |
confirmation | ใช่ / ไม่ใช่ แต่ละปุ่มมีการกระทำของตัวเอง |
multi_action | ตารางของปุ่ม |
server_links | รายการลิงก์ในตัว |
dialog_list | เมนูที่เปิดไดอะล็อกอื่นๆ |
multi_action คือตัวหลักที่ใช้งานได้หลากหลาย — เป็นตัวเลือกคลาส ร้านค้า รายการวาร์ป
ปุ่มสั่งงาน
{ "label": { "text": "Warp to spawn" },
"action": { "type": "minecraft:run_command", "command": "/spawn" } }
เหมือน clickEvent ในแชท สิ่งนี้จะทำงาน ในฐานะผู้เล่นที่คลิก โดยใช้ระดับสิทธิ์ของพวกเขา ปุ่มที่เรียกคำสั่งสำหรับโอเปอเรเตอร์เท่านั้นจะไม่มีผลกับผู้เล่นทั่วไป วิธีแก้ปัญหามาตรฐานคือออบเจกต์ trigger: ปุ่มจะรัน /trigger warp set 1 และฟังก์ชันที่ทำงานต่อเนื่องจะจัดการส่วนที่มีสิทธิ์
ช่องป้อนข้อมูล
"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" } } ] }
]
ค่าต่างๆ จะมาถึงในรูปแบบ อาร์กิวเมนต์มาโคร ไปยังฟังก์ชันที่ปุ่มเรียกใช้ ดังนั้นฟังก์ชันที่รับค่าจึงเป็นมาโคร:
$say Welcome $(name), you chose $(class)
คำนำหน้า $ บนบรรทัดและ $(key) สำหรับการแทนที่ นั่นคือกลไกการผูกทั้งหมด และเป็นสิ่งที่ทำให้ไดอะล็อกมีประโยชน์อย่างแท้จริงมากกว่าแค่การตกแต่ง
ทำไมสิ่งนี้ถึงดีกว่าการแฮกด้วยหนังสือ
- เป็น หน้าจอ ดังนั้นจึงหยุดการป้อนข้อมูลแทนที่จะอยู่ในประวัติแชท
- ช่องป้อนข้อมูลมีอยู่จริง หนังสือสามารถเสนอได้แค่ลิงก์เท่านั้น
- ไม่จำเป็นต้องมีไอเทม ไม่มีอะไรให้เสีย ทิ้ง หรือทำซ้ำ
- ปิดได้อย่างสะอาดและไม่สามารถเลื่อนกลับไปดูได้
สิ่งเดียวที่หนังสือยังคงทำได้ดีกว่าคือการอ่านเนื้อหาขนาดยาว — เนื้อหาของไดอะล็อกไม่เหมาะสำหรับเนื้อเรื่องสามหน้า
รูปแบบจุดอ้างอิง
เครื่องมือเดียวกันนี้ครอบคลุมจุดอ้างอิงบนแถบระบุตำแหน่ง ซึ่งเป็นการลงทะเบียนดาต้าแพ็กแยกต่างหากที่ควบคุมสีเครื่องหมายและสไปรต์ที่แสดงสำหรับผู้เล่นหรือตำแหน่งที่ติดตาม มีประโยชน์สำหรับเครื่องหมายทีมที่บอสบาร์จะรบกวนมากเกินไป
สร้างหน้าจอไดอะล็อกพร้อมช่องป้อนข้อมูลและปุ่มต่างๆ และปรับแต่งรูปแบบจุดอ้างอิงได้ที่ Dialog Input & Waypoint Style Builder