diff --git a/dialog/src/main/java/net/md_5/bungee/api/dialog/ConfirmationDialog.java b/dialog/src/main/java/net/md_5/bungee/api/dialog/ConfirmationDialog.java
index 9ed5f2f3..f40e823c 100644
--- a/dialog/src/main/java/net/md_5/bungee/api/dialog/ConfirmationDialog.java
+++ b/dialog/src/main/java/net/md_5/bungee/api/dialog/ConfirmationDialog.java
@@ -7,17 +7,27 @@ import lombok.ToString;
import lombok.experimental.Accessors;
import net.md_5.bungee.api.dialog.action.DialogClickAction;
+/**
+ * Represents a simple dialog with text and two actions at the bottom (default:
+ * "yes", "no").
+ */
@Data
@ToString
@EqualsAndHashCode
@AllArgsConstructor
@Accessors(fluent = true)
-public class ConfirmationDialog implements Dialog
+public final class ConfirmationDialog implements Dialog
{
@Accessors(fluent = false)
private DialogBase base;
+ /**
+ * The "yes" click action / bottom (appears on the left).
+ */
private DialogClickAction yes;
+ /**
+ * The "no" click action / bottom (appears on the right).
+ */
private DialogClickAction no;
public ConfirmationDialog(DialogBase base)
diff --git a/dialog/src/main/java/net/md_5/bungee/api/dialog/Dialog.java b/dialog/src/main/java/net/md_5/bungee/api/dialog/Dialog.java
index 028357b9..f65d1884 100644
--- a/dialog/src/main/java/net/md_5/bungee/api/dialog/Dialog.java
+++ b/dialog/src/main/java/net/md_5/bungee/api/dialog/Dialog.java
@@ -1,9 +1,29 @@
package net.md_5.bungee.api.dialog;
+import org.jetbrains.annotations.ApiStatus;
+
+/**
+ * Represents a dialog GUI.
+ */
public interface Dialog
{
+ /**
+ * Gets the dialog base which contains the dialog title and other options
+ * common to all types of dialogs.
+ *
+ * @return mutable reference to the dialog base
+ */
DialogBase getBase();
+ /**
+ * Sets the dialog base.
+ *
+ * For internal use only as this is mandatory and should be specified in the
+ * constructor.
+ *
+ * @param base the new dialog base
+ */
+ @ApiStatus.Internal
void setBase(DialogBase base);
}
diff --git a/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogBase.java b/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogBase.java
index df84a390..5d38b4e9 100644
--- a/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogBase.java
+++ b/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogBase.java
@@ -6,16 +6,33 @@ import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;
import net.md_5.bungee.api.chat.BaseComponent;
+import net.md_5.bungee.api.dialog.body.DialogBody;
+/**
+ * Represents the title and other options common to all dialogs.
+ */
@Data
@AllArgsConstructor
@RequiredArgsConstructor
@Accessors(fluent = true)
-public class DialogBase
+public final class DialogBase
{
+ /**
+ * The mandatory dialog title.
+ */
private final BaseComponent title;
+ /**
+ * The name which is used for any buttons leading to this dialog (eg from a
+ * {@link DialogListDialog}). Otherwise defaults to {@link #title}.
+ */
private BaseComponent externalTitle;
- private List> body;
+ /**
+ * The body elements which make up this dialog.
+ */
+ private List body;
+ /**
+ * Whether this dialog can be closed with the escape key (default: true).
+ */
private boolean canCloseWithEscape;
}
diff --git a/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogListDialog.java b/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogListDialog.java
index d37a54d7..2f8bfa18 100644
--- a/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogListDialog.java
+++ b/dialog/src/main/java/net/md_5/bungee/api/dialog/DialogListDialog.java
@@ -9,19 +9,34 @@ import lombok.ToString;
import lombok.experimental.Accessors;
import net.md_5.bungee.api.chat.ClickEvent;
+/**
+ * Represents a dialog which contains buttons that link to other dialogs.
+ */
@Data
@ToString
@EqualsAndHashCode
@Accessors(fluent = true)
-public class DialogListDialog implements Dialog
+public final class DialogListDialog implements Dialog
{
@Accessors(fluent = false)
private DialogBase base;
+ /**
+ * The child dialogs behind each button.
+ */
private List