The Best Resource for Minecraft
The Best Resource for Minecraft

Schermate di dialogo: creare veri menu senza mod

Schermate di dialogo: creare veri menu senza mod

I dialoghi dei data pack offrono una vera finestra con input e pulsanti. Ecco la struttura JSON, come un pulsante esegue un comando e come si confronta con l'escamotage del libro-menu.

I menu dei server un tempo erano libri scritti con pagine cliccabili o una GUI di baule simulata con cornici. I dialoghi hanno sostituito entrambi con una vera schermata.

Cos'è un dialogo

Un file JSON in un data pack che descrive una finestra:

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" } }
}

Poi /dialog show @p my_pack:welcome.

I tipi

TipoForma
noticetesto più un pulsante di chiusura
confirmationsì / no, ciascuno con la propria azione
multi_actionuna griglia di pulsanti
server_linksl'elenco di link integrato
dialog_listun menu che apre altri dialoghi

multi_action is the workhorse — it is the class-picker, the shop, the warp list.

I pulsanti eseguono comandi

{ "label": { "text": "Warp to spawn" },
  "action": { "type": "minecraft:run_command", "command": "/spawn" } }

Come clickEvent in chat, this runs come giocatore che clicca, al loro livello di permessi. Un pulsante che richiama un comando solo per op non fa nulla per un giocatore normale. L'escamotage standard è un trigger objective: the button runs /trigger warp set 1 and a ticking function does the privileged part.

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" } } ] }
]

I valori arrivano come argomenti di macro alla funzione chiamata dal pulsante, quindi la funzione ricevente è una macro:

$say Welcome $(name), you chose $(class)

Il $ 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.

Perché questo supera il trucco del libro

  • È una schermata, quindi mette in pausa l'input anziché rimanere nella cronologia della chat.
  • Gli input esistono davvero. Un libro poteva solo offrire link.
  • Nessun oggetto richiesto. Niente da perdere, gettare o duplicare.
  • Si chiude in modo pulito e non è possibile scorrerlo all'indietro.

L'unica cosa che i libri fanno ancora meglio è la lettura prolungata: il corpo di un dialogo non è il posto adatto per tre pagine di lore.

Stili dei waypoint

Lo stesso strumento copre i waypoint della barra di localizzazione, che sono un registro separato del data pack che controlla il colore dell'indicatore e lo sprite mostrato per una posizione o un giocatore tracciato. Utile per gli indicatori di squadra dove una bossbar sarebbe troppo invasiva.

Crea schermate di dialogo con input e pulsanti e personalizza gli stili dei waypoint nel Costruttore di input di dialogo e stili di waypoint.

Prova lo strumento: Dialog Input & Waypoint Style Builder →