Class EmbedPaginator.Builder

Enclosing class:
EmbedPaginator

public static class EmbedPaginator.Builder extends Menu.Builder<EmbedPaginator.Builder,EmbedPaginator>
Author:
Andre_601
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • build

      public EmbedPaginator build()
      Builds the EmbedPaginator with this Builder.
      Specified by:
      build in class Menu.Builder<EmbedPaginator.Builder,EmbedPaginator>
      Returns:
      The Paginator built from this Builder.
      Throws:
      IllegalArgumentException - If one of the following is violated:
      • No EventWaiter was set.
      • No items were set to paginate.
    • setText

      public EmbedPaginator.Builder setText(String text)
      Sets the text of the Message to be displayed when the EmbedPaginator is built.
      Parameters:
      text - The Message content to be displayed above the embed when the EmbedPaginator is built.
      Returns:
      This builder
    • setText

      public EmbedPaginator.Builder setText(BiFunction<Integer,Integer,String> textBiFunction)
      Sets the text of the Message to be displayed relative to the total page number and the current page as determined by the provided BiFunction.
      As the page changes, the BiFunction will re-process the current page number and the total page number, allowing for the displayed text of the Message to change depending on the page number.
      Parameters:
      textBiFunction - The BiFunction that uses both current and total page numbers, to get text for the Message
      Returns:
      This builder
    • setFinalAction

      public EmbedPaginator.Builder setFinalAction(Consumer<net.dv8tion.jda.api.entities.Message> finalAction)
      Sets the Consumer to perform if the EmbedPaginator times out.
      Parameters:
      finalAction - The Consumer action to perform if the EmbedPaginator times out
      Returns:
      This builder
    • waitOnSinglePage

      public EmbedPaginator.Builder waitOnSinglePage(boolean waitOnSinglePage)
      Sets whether the EmbedPaginator will instantly timeout, and possibly run a provided Runnable, if only a single slide is available to display.
      Parameters:
      waitOnSinglePage - true if the EmbedPaginator will still generate
      Returns:
      This builder
    • clearItems

      public EmbedPaginator.Builder clearItems()
      Clears all previously set items.
      Returns:
      This builder
    • addItems

      public EmbedPaginator.Builder addItems(net.dv8tion.jda.api.entities.MessageEmbed... embeds)
      Adds MessageEmbeds to the list of items to paginate.
      Parameters:
      embeds - The list of MessageEmbeds to add
      Returns:
      This builder
    • addItems

      public EmbedPaginator.Builder addItems(Collection<net.dv8tion.jda.api.entities.MessageEmbed> embeds)
      Adds the collection of provided MessageEmbeds to the list of items to paginate.
      Parameters:
      embeds - The collection of MessageEmbeds to add
      Returns:
      This builder
    • addItems

      public EmbedPaginator.Builder addItems(String... items)
      Adds MessageEmbeds to the list of items to paginate.
      This method creates a new, basic MessageEmbed containing only the provided String as description.
      Use the Paginator for more Embed customization, without providing your own MessageEmbed instances.
      Parameters:
      items - The String list of items to add as MessageEmbeds
      Returns:
      This builder
      Throws:
      IllegalArgumentException - When one of the provided Strings is longer than 2048 characters.
    • setItems

      public EmbedPaginator.Builder setItems(net.dv8tion.jda.api.entities.MessageEmbed... embeds)
      Sets the MessageEmbeds to paginate.
      This method clears all previously set items before setting.
      Parameters:
      embeds - The MessageEmbed list of items to add
      Returns:
      This builder
    • setItems

      public EmbedPaginator.Builder setItems(Collection<net.dv8tion.jda.api.entities.MessageEmbed> embeds)
      Sets the MessageEmbeds to paginate.
      This method clears all previously set items before adding the provided collection of MessageEmbeds.
      Parameters:
      embeds - The collection of MessageEmbeds to set.
      Returns:
      This builder
    • setItems

      public EmbedPaginator.Builder setItems(String... items)
      Sets the MessageEmbeds to paginate.
      This method clears all previously set items before setting each String as a new MessageEmbed.
      Use the Paginator for more Embed customization, without providing your own MessageEmbed instances.
      Parameters:
      items - The String list of items to add
      Returns:
      This builder
      Throws:
      IllegalArgumentException - When one of the provided Strings is longer than 2048 characters.
    • setBulkSkipNumber

      public EmbedPaginator.Builder setBulkSkipNumber(int bulkSkipNumber)
      Sets the EmbedPaginator's bulk-skip function to skip multiple pages using alternate forward and backwards reactions.
      Parameters:
      bulkSkipNumber - The number of pages to skip when the bulk-skip reactions are used.
      Returns:
      This builder
    • wrapPageEnds

      public EmbedPaginator.Builder wrapPageEnds(boolean wrapPageEnds)
      Sets the EmbedPaginator to wrap from the last page to the first when traversing right and vice versa from the left.
      Parameters:
      wrapPageEnds - true to enable wrapping.
      Returns:
      This builder
    • allowTextInput

      public EmbedPaginator.Builder allowTextInput(boolean allowTextInput)
      Sets the EmbedPaginator to allow a page number to be specified by a user via text.

      Note that setting this doesn't mean that left and right text inputs provided via setLeftRightText(String, String) will be invalidated if they were set previously! To invalidate those, provide null for one or both of the parameters of that method.

      Parameters:
      allowTextInput - true if the EmbedPaginator will allow page-number text input.
      Returns:
      This builder
    • setLeftRightText

      public EmbedPaginator.Builder setLeftRightText(String left, String right)
      Sets the EmbedPaginator to traverse left or right when a provided text input is sent in the form of a Message to the GuildChannel the menu is displayed in.

      If one or both these parameters are provided null this resets both of them and they will no longer be available when the Paginator is built.

      Parameters:
      left - The left text input, causes the EmbedPaginator to traverse one page left.
      right - The right text input, causes the EmbedPaginator to traverse one page right.
      Returns:
      This builder