Mga dialog screen: paggawa ng mga totoong menu nang walang mod
Nagbibigay ang mga datapack dialog ng maayos na window na may mga input at pindutan. Narito ang JSON shape, kung paano nagpapatakbo ng command ang isang pindutan, at kung paano ito maikukumpara sa book-menu hack.
Dati ay mga written book na may napipindot na mga pahina ang mga server menu, o isang chest GUI na peke gamit ang mga item frame. Pinalitan ng mga dialog ang pareho ng isang totoong screen.
Kung ano ang isang dialog
Isang JSON file sa isang datapack na naglalarawan ng isang window:
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" } }
}
Pagkatapos /dialog show @p my_pack:welcome.
Ang mga uri
| Uri | Anyo |
|---|---|
notice | teksto kasama ang isang dismiss button |
confirmation | oo / hindi, bawat isa ay may sariling aksyon |
multi_action | isang grid ng mga pindutan |
server_links | ang built-in na listahan ng mga link |
dialog_list | isang menu na nagbubukas ng iba pang mga dialog |
multi_action is the workhorse — it is the class-picker, the shop, the warp list.
Nagpapatakbo ng mga command ang mga pindutan
{ "label": { "text": "Warp to spawn" },
"action": { "type": "minecraft:run_command", "command": "/spawn" } }
Tulad ng clickEvent in chat, this runs bilang ang pumipindot na manlalaro, sa kanilang antas ng permiso. Ang isang pindutan na tumatawag ng op-only na command ay walang gagawin para sa isang normal na manlalaro. Ang karaniwang solusyon ay isang trigger objective: the button runs /trigger warp set 1 and a ticking function does the privileged part.
Mga Input
"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" } } ] }
]
Dumarating ang mga value bilang mga macro argument sa function na tinatawag ng pindutan, kaya ang tumatanggap na function ay isang macro:
$say Welcome $(name), you chose $(class)
Ang $ prefix on the line and $(key) for substitution. That is the whole binding mechanism, and it is what makes dialogs genuinely useful rather than decorative.
Bakit mas maganda ito kaysa sa book hack
- Ito ay isang screen, kaya pinapahinto nito ang input sa halip na maupo lang sa kasaysayan ng chat.
- Talagang umiiral ang mga input. Mga link lamang ang kayang ialok ng isang aklat.
- Walang kinakailangang item. Walang mawawala, maihuhulog o maduduplicate.
- Nagsasara ito nang malinis at hindi na maaaring i-scroll pabalik.
Ang tanging bagay na mas mahusay pa ring nagagawa ng mga aklat ay ang mahabang pagbabasa — ang katawan ng dialog ay hindi magandang lugar para sa tatlong pahina ng lore.
Mga estilo ng waypoint
Sinasaklaw ng parehong tool ang mga locator-bar waypoint, na isang hiwalay na datapack registry na kumokontrol sa kulay ng marker at sprite na ipinapakita para sa isang sinusubaybayang manlalaro o posisyon. Kapaki-pakinabang para sa mga team marker kung saan masyadong sagabal ang isang bossbar.
Gumawa ng mga dialog screen na may mga input at pindutan, at i-customize ang mga estilo ng waypoint, sa Dialog Input & Waypoint Style Builder.