Interface Modal
- All Superinterfaces:
SerializableData
Represents a Discord Modal
Replying to an interaction with a modal will open an interactive popout on the User's Discord client. This is similar to the ban modal where you can input a ban reason.
Example
public void onSlashCommandInteraction(@Nonnull SlashCommandInteractionEvent event)
{
if (event.getName().equals("modmail"))
{
TextInput subject = TextInput.create("subject", "Subject", TextInputStyle.SHORT)
.setPlaceholder("Subject of this ticket")
.setMinLength(10)
.setMaxLength(100) // or setRequiredRange(10, 100)
.build();
TextInput body = TextInput.create("body", "Body", TextInputStyle.PARAGRAPH)
.setPlaceholder("Your concerns go here")
.setMinLength(30)
.setMaxLength(1000)
.build();
Modal modal = Modal.create("modmail", "Modmail")
.addComponents(ActionRow.of(subject), ActionRow.of(body))
.build();
event.replyModal(modal).queue();
}
}
Only a maximum of 5 component layouts can be included in a Modal, and only TextInputs
are allowed at this time.
You can check whether a component is supported via Component.Type.isModalCompatible()
.
- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic class
A preconfigured builder for the creation of modals. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The maximum amount of components a Modal can have.static final int
The maximum length a modal custom id can have.static final int
The maximum length a modal title can have. -
Method Summary
Modifier and TypeMethodDescriptionstatic Modal.Builder
Creates a new Modal.default Modal.Builder
Creates a new preconfiguredModal.Builder
with the same settings used for this modal.A List ofLayoutComponents
that this modal contains.getId()
The custom id of this modalgetTitle()
The title of this modalMethods inherited from interface net.dv8tion.jda.api.utils.data.SerializableData
toData
-
Field Details
-
MAX_COMPONENTS
static final int MAX_COMPONENTSThe maximum amount of components a Modal can have. (5)- See Also:
-
MAX_ID_LENGTH
static final int MAX_ID_LENGTHThe maximum length a modal custom id can have. (100)- See Also:
-
MAX_TITLE_LENGTH
static final int MAX_TITLE_LENGTHThe maximum length a modal title can have. (45)- See Also:
-
-
Method Details
-
getId
The custom id of this modal- Returns:
- The custom id of this modal
- See Also:
-
getTitle
The title of this modal- Returns:
- The title of this modal
-
getComponents
A List ofLayoutComponents
that this modal contains.- Returns:
- List of LayoutComponents
-
createCopy
Creates a new preconfiguredModal.Builder
with the same settings used for this modal.
This can be useful to create an updated version of this modal without needing to rebuild it from scratch.- Returns:
- The
Modal.Builder
used to create the modal
-
create
@Nonnull @CheckReturnValue static Modal.Builder create(@Nonnull String customId, @Nonnull String title) Creates a new Modal. You must add at least one component to a modal before building it.- Parameters:
customId
- The custom id for this modaltitle
- The title for this modal- Returns:
Builder
instance to customize this modal further- Throws:
IllegalArgumentException
-
-