Class ConversationFactory

java.lang.Object
org.bukkit.conversations.ConversationFactory

public class ConversationFactory extends Object
A ConversationFactory is responsible for creating a Conversation from a predefined template. A ConversationFactory is typically created when a plugin is instantiated and builds a Conversation each time a user initiates a conversation with the plugin. Each Conversation maintains its own state and calls back as needed into the plugin.

The ConversationFactory implements a fluid API, allowing parameters to be set as an extension to the constructor.

  • Field Details

  • Constructor Details

    • ConversationFactory

      public ConversationFactory(@NotNull Plugin plugin)
      Constructs a ConversationFactory.
      Parameters:
      plugin - The plugin that owns the factory.
  • Method Details

    • withModality

      @NotNull public ConversationFactory withModality(boolean modal)
      Sets the modality of all Conversations created by this factory. If a conversation is modal, all messages directed to the player are suppressed for the duration of the conversation.

      The default is True.

      Parameters:
      modal - The modality of all conversations to be created.
      Returns:
      This object.
    • withLocalEcho

      @NotNull public ConversationFactory withLocalEcho(boolean localEchoEnabled)
      Sets the local echo status for all Conversations created by this factory. If local echo is enabled, any text submitted to a conversation gets echoed back into the submitter's chat window.
      Parameters:
      localEchoEnabled - The status of local echo.
      Returns:
      This object.
    • withPrefix

      Sets the ConversationPrefix that prepends all output from all generated conversations.

      The default is a NullConversationPrefix;

      Parameters:
      prefix - The ConversationPrefix to use.
      Returns:
      This object.
    • withTimeout

      @NotNull public ConversationFactory withTimeout(int timeoutSeconds)
      Sets the number of inactive seconds to wait before automatically abandoning all generated conversations.

      The default is 600 seconds (5 minutes).

      Parameters:
      timeoutSeconds - The number of seconds to wait.
      Returns:
      This object.
    • withFirstPrompt

      @NotNull public ConversationFactory withFirstPrompt(@Nullable Prompt firstPrompt)
      Sets the first prompt to use in all generated conversations.

      The default is Prompt.END_OF_CONVERSATION.

      Parameters:
      firstPrompt - The first prompt.
      Returns:
      This object.
    • withInitialSessionData

      @NotNull public ConversationFactory withInitialSessionData(@NotNull Map<Object,​Object> initialSessionData)
      Sets any initial data with which to populate the conversation context sessionData map.
      Parameters:
      initialSessionData - The conversation context's initial sessionData.
      Returns:
      This object.
    • withEscapeSequence

      @NotNull public ConversationFactory withEscapeSequence(@NotNull String escapeSequence)
      Sets the player input that, when received, will immediately terminate the conversation.
      Parameters:
      escapeSequence - Input to terminate the conversation.
      Returns:
      This object.
    • withConversationCanceller

      @NotNull public ConversationFactory withConversationCanceller(@NotNull ConversationCanceller canceller)
      Adds a ConversationCanceller to constructed conversations.
      Parameters:
      canceller - The ConversationCanceller to add.
      Returns:
      This object.
    • thatExcludesNonPlayersWithMessage

      @NotNull public ConversationFactory thatExcludesNonPlayersWithMessage(@Nullable String playerOnlyMessage)
      Prevents this factory from creating a conversation for non-player Conversable objects.
      Parameters:
      playerOnlyMessage - The message to return to a non-play in lieu of starting a conversation.
      Returns:
      This object.
    • addConversationAbandonedListener

      @NotNull public ConversationFactory addConversationAbandonedListener(@NotNull ConversationAbandonedListener listener)
      Adds a ConversationAbandonedListener to all conversations constructed by this factory.
      Parameters:
      listener - The listener to add.
      Returns:
      This object.
    • buildConversation

      @NotNull public Conversation buildConversation(@NotNull Conversable forWhom)
      Constructs a Conversation in accordance with the defaults set for this factory.
      Parameters:
      forWhom - The entity for whom the new conversation is mediating.
      Returns:
      A new conversation.