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
DialogBody¶
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
DialogInput¶
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