Guides / Commands & Data

Ekrany dialogowe: tworzenie prawdziwych menu bez modyfikacji

Dialogi w pakietach danych dają Ci prawdziwe okno z polami wprowadzania i przyciskami. Oto ich struktura JSON, sposób, w jaki przycisk uruchamia komendę, oraz porównanie z „hackiem” z menu w Książce.

Menu serwerowe były kiedyś pisanymi Książkami z klikalnymi stronami lub interfejsem Skrzyni udawanym za pomocą ramek na przedmioty. Dialogi zastąpiły oba te rozwiązania prawdziwym ekranem.

Czym jest dialog

Plik JSON w pakiecie danych, który opisuje okno:

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

Następnie /dialog show @p my_pack:welcome.

Typy

TypKształt
noticetekst plus jeden przycisk zamykający
confirmationtak / nie, każdy z własną akcją
multi_actionsiatka przycisków
server_linkswbudowana lista linków
dialog_listmenu, które otwiera inne dialogi

multi_action to koń roboczy — to selektor klas, sklep, lista teleportacji.

Przyciski uruchamiają komendy

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

Podobnie jak clickEvent na czacie, ta komenda jest uruchamiana przez klikającego Gracza, na jego poziomie uprawnień. Przycisk wywołujący komendę dostępną tylko dla operatorów nie zadziała dla zwykłego Gracza. Standardowym obejściem jest cel trigger: przycisk uruchamia /trigger warp set 1, a funkcja tykająca wykonuje uprzywilejowaną część.

Pola wprowadzania (Inputs)

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

Wartości są przekazywane jako argumenty makro do funkcji wywoływanej przez przycisk, więc funkcja odbierająca jest makrem:

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

Prefiks $ w linii i $(key) do podstawienia. To cały mechanizm wiązania i to właśnie sprawia, że dialogi są naprawdę użyteczne, a nie tylko dekoracyjne.

Dlaczego to bije „hack” z Książką

  • To ekran, więc wstrzymuje wprowadzanie danych, zamiast siedzieć w historii czatu.
  • Pola wprowadzania naprawdę istnieją. Książka mogła oferować tylko linki.
  • Nie wymaga przedmiotu. Nic do stracenia, upuszczenia ani powielenia.
  • Zamyka się czysto i nie można do niego przewinąć.

Jedyną rzeczą, którą Książki nadal robią lepiej, jest długie czytanie — treść dialogu nie jest dobrym miejscem na trzy strony historii.

Style punktów nawigacyjnych (Waypoint styles)

To samo narzędzie obejmuje punkty nawigacyjne na pasku lokalizatora, które są oddzielnym rejestrem pakietów danych kontrolującym kolor znacznika i duszka wyświetlanego dla śledzonego Gracza lub pozycji. Przydatne dla znaczników drużynowych, gdzie pasek bossa byłby zbyt inwazyjny.

Twórz ekrany dialogowe z polami wprowadzania i przyciskami oraz dostosowuj style punktów nawigacyjnych w Kreatorze pól wprowadzania dialogów i stylów punktów nawigacyjnych.

Kreator dialogów i stylów punktów trasy →

More guides

Browse all →

Szukasz innych narzędzi do Minecrafta?

Zestaw generatorów, podglądów i konwerterów działających w przeglądarce — wszystkie za darmo.