DialogBase

Dialogs have a base which contains the content of the Dialog. Below are the propeties you can use

title - The title of the Dialog, is always visible on the screen externalTitle - Name used for buttons that link to this Dialog, defaults to title canCloseWithEscape - If the Dialog can be dismissed with Escape Key afterAction - Operation performed on the dialog after click or submit actions. * NONE - Keeps the current dialog screen open * CLOSE (Default) - Close and return to the previous non-dialog screen (if any) * WAIT_FOR_RESPONSE - Replaces the current screen with a "Waiting for Response" bodies - List of DialogBodies to add to the Dialog Screen inputs - List of DialogInputs to add to the Dialog Screen

A DialogBody describes content that is positioned between the title and the inputs of the Dialog Screen. These are fairly simple and come in two types, MESSAGE & ITEM

Message-Type takes a width-property and a string for the message This message supports MiniMessage and Nexo Glyphs- & Shift-tags

Item-Type has a few more properties. description - Takes a MiniMessage String and optionally a width (defaults to 200) showDecorations - When true, shows the count & durability-bar on the item showTooltip - When true, shows the tooltip when hovering over the item width - Horizontal size of the element, must be between 1 & 256, defaults to 16 height - Vertical size of the element, must be between 1 & 256, defaults to 16

To make a DialogBody you can follow the below example, specifying a key/id for the Body-element and its properties;

base:
  bodies:
    message_body:
      type: MESSAGE
      message: "<red>Some Message allowing MiniMessage"
      width: 200
    item_body:
      type: ITEM
      description: "Some Description"
     #description:
     #  contents: "<red>Some description"
     #  width: 200
      showDecorations: true
      showTooltip: true
      width: 16
      height: 16

DialogInputs are rendered below the DialogBody-elements and have numerous actions for receiving information from players.

There are four types of Inputs, TEXT, BOOL, NUMBER & SINGLE.

Text-Input

A simple text-input field with a few properties width - The width of the text input field, between 1 & 1024, defaults to 200 labelVisible - Controls if the label is visible for the input-field maxLength - The max length of the text input initial - The initial value in the input-field when the Dialog is opened multiLineOptions - Optional, specifies that the field should be multiline

inputs:
  text_key:
    type: TEXT
    width: 200
    label: "<red>Text Input Label"
    labelVisible: true
    maxLength: 32
    initial: "Initial Input Text"
    multilineOptions:
      maxLines: 1
      height: 32

Boolean-Input

A checkbox returning a string value depending on its state

onTrue - The string value to return when checked, default is "true" onFalse - The string value to return when unchecked, defaults to "false" initial - The initial state of the checkbox

inputs:
  bool_key:  
    type: BOOL
    label: "<red>Boolean Input Label"
    initial: true
    onTrue: "true"
    onFalse: "false"

NumberRange-Input

A number slider used for returning a number-value

width - The width of the slider, between 1 & 1024, defaults to 200 labelFormat - A translation key used for building the label start - The lowest value of the slider end - The highest value of the slider step - The incremental value for each notch on the slider, if unspecified, slider has no notches initial - The initial value between start & end for the slider when Dialog is shown

inputs:
  number_key:
    type: NUMBER
    width: 200
    label: "<red>Number Input Label"
    labelFormat: "options.generic_value"
    start: 0
    end: 1
    initial: 0.5
    step: 0.1

SingleOption-Input

labelVisible - If the label should be visible on the button or not width - The width of the button options - A list of SingleOptions the button can have. Contains a display text field & an initial-field

inputs:
  single_key:
    type: SINGLE
    width: 200
    label: "<red>Single Input Label"
    labelVisible: true
    options:
      option_1:
        display: "First Option"
        initial: true
      option_2:
        display: "Second Option"
        initial: false

Last updated