diff --git a/api/src/main/java/net/md_5/bungee/api/event/CustomClickEvent.java b/api/src/main/java/net/md_5/bungee/api/event/CustomClickEvent.java
index 0d340668..6860dafb 100644
--- a/api/src/main/java/net/md_5/bungee/api/event/CustomClickEvent.java
+++ b/api/src/main/java/net/md_5/bungee/api/event/CustomClickEvent.java
@@ -1,6 +1,6 @@
package net.md_5.bungee.api.event;
-import java.util.Map;
+import com.google.gson.JsonElement;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@@ -34,19 +34,9 @@ public class CustomClickEvent extends Event implements Cancellable
*/
private final String id;
/**
- * The raw data as submitted.
+ * The data as submitted.
*/
- private final String rawData;
- /**
- * The parsed form data.
- *
- * If a form submission, usually contains a
- * {@code CustomClickEvent.ACTION_KEY} key with the ID of the relevant
- * submission action.
- *
- * If not a form submission, then may be null.
- */
- private final Map parsedData;
+ private final JsonElement data;
/**
* Cancelled state.
*/
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 e373ae5c..3d17fe02 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
@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
import lombok.NonNull;
import lombok.ToString;
import lombok.experimental.Accessors;
-import net.md_5.bungee.api.dialog.action.DialogClickAction;
+import net.md_5.bungee.api.dialog.action.DialogAction;
/**
* Represents a simple dialog with text and two actions at the bottom (default:
@@ -26,11 +26,11 @@ public final class ConfirmationDialog implements Dialog
/**
* The "yes" click action / bottom (appears on the left).
*/
- private DialogClickAction yes;
+ private DialogAction yes;
/**
* The "no" click action / bottom (appears on the right).
*/
- private DialogClickAction no;
+ private DialogAction no;
public ConfirmationDialog(@NonNull 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 b261628e..1c352c6d 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
@@ -8,6 +8,7 @@ import lombok.NonNull;
import lombok.experimental.Accessors;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.dialog.body.DialogBody;
+import net.md_5.bungee.api.dialog.input.DialogInput;
/**
* Represents the title and other options common to all dialogs.
@@ -29,6 +30,10 @@ public final class DialogBase
*/
@SerializedName("external_title")
private BaseComponent externalTitle;
+ /**
+ * The inputs to the dialog.
+ */
+ private List inputs;
/**
* The body elements which make up this dialog.
*/
@@ -38,9 +43,42 @@ public final class DialogBase
*/
@SerializedName("can_close_with_escape")
private Boolean canCloseWithEscape;
+ /**
+ * Whether this dialog should pause the game in single-player mode (default:
+ * true).
+ */
+ private Boolean pause;
+ /**
+ * Action to take after the a click or submit action is performed on the
+ * dialog (default: close).
+ */
+ @SerializedName("after_action")
+ private AfterAction afterAction;
public DialogBase(@NonNull BaseComponent title)
{
- this( title, null, null, null );
+ this( title, null, null, null, null, null, null );
+ }
+
+ /**
+ * Types of action which may be taken after the dialog.
+ */
+ public enum AfterAction
+ {
+ /**
+ * Close the dialog.
+ */
+ @SerializedName("close")
+ CLOSE,
+ /**
+ * Do nothing.
+ */
+ @SerializedName("none")
+ NONE,
+ /**
+ * Show a waiting for response screen.
+ */
+ @SerializedName("wait_for_response")
+ WAIT_FOR_RESPONSE;
}
}
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 ea3e02f4..133b0d88 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,7 +9,7 @@ import lombok.EqualsAndHashCode;
import lombok.NonNull;
import lombok.ToString;
import lombok.experimental.Accessors;
-import net.md_5.bungee.api.chat.ClickEvent;
+import net.md_5.bungee.api.dialog.action.DialogAction;
/**
* Represents a dialog which contains buttons that link to other dialogs.
@@ -29,10 +29,10 @@ public final class DialogListDialog implements Dialog
*/
private List