Class ConversationFactory

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

@Deprecated(forRemoval=true) public class ConversationFactory extends Object
Deprecated, for removal: This API element is subject to removal in a future version.
The conversation API has been deprecated for removal. This system does not support component based messages and has been slowly losing functionality over the years as Minecraft has changed that this API can not adapt to. It is recommended you instead manually listen to the AsyncChatEvent or alternatively using Dialog to get user input.
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

    • plugin

      protected Plugin plugin
      Deprecated, for removal: This API element is subject to removal in a future version.
    • isModal

      protected boolean isModal
      Deprecated, for removal: This API element is subject to removal in a future version.
    • localEchoEnabled

      protected boolean localEchoEnabled
      Deprecated, for removal: This API element is subject to removal in a future version.
    • prefix

      protected ConversationPrefix prefix
      Deprecated, for removal: This API element is subject to removal in a future version.
    • firstPrompt

      protected Prompt firstPrompt
      Deprecated, for removal: This API element is subject to removal in a future version.
    • initialSessionData

      protected Map<Object,Object> initialSessionData
      Deprecated, for removal: This API element is subject to removal in a future version.
    • playerOnlyMessage

      protected String playerOnlyMessage
      Deprecated, for removal: This API element is subject to removal in a future version.
    • cancellers

      protected List<ConversationCanceller> cancellers
      Deprecated, for removal: This API element is subject to removal in a future version.
    • abandonedListeners

      protected List<ConversationAbandonedListener> abandonedListeners
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • ConversationFactory

      public ConversationFactory(@NotNull @NotNull Plugin plugin)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Constructs a ConversationFactory.
      Parameters:
      plugin - The plugin that owns the factory.
  • Method Details

    • withModality

      @NotNull public @NotNull ConversationFactory withModality(boolean modal)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withLocalEcho(boolean localEchoEnabled)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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

      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withTimeout(int timeoutSeconds)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withFirstPrompt(@Nullable @Nullable Prompt firstPrompt)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withInitialSessionData(@NotNull @NotNull Map<Object,Object> initialSessionData)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withEscapeSequence(@NotNull @NotNull String escapeSequence)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory withConversationCanceller(@NotNull @NotNull ConversationCanceller canceller)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Adds a ConversationCanceller to constructed conversations.
      Parameters:
      canceller - The ConversationCanceller to add.
      Returns:
      This object.
    • thatExcludesNonPlayersWithMessage

      @NotNull public @NotNull ConversationFactory thatExcludesNonPlayersWithMessage(@Nullable @Nullable String playerOnlyMessage)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 @NotNull ConversationFactory addConversationAbandonedListener(@NotNull @NotNull ConversationAbandonedListener listener)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Adds a ConversationAbandonedListener to all conversations constructed by this factory.
      Parameters:
      listener - The listener to add.
      Returns:
      This object.
    • buildConversation

      @NotNull public @NotNull Conversation buildConversation(@NotNull @NotNull Conversable forWhom)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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.