Package org.bukkit.conversations
Class ConversationFactory
java.lang.Object
org.bukkit.conversations.ConversationFactory
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 Summary
FieldsModifier and TypeFieldDescriptionprotected List<ConversationAbandonedListener>protected List<ConversationCanceller>protected Promptprotected booleanprotected booleanprotected Stringprotected Pluginprotected ConversationPrefix -
Constructor Summary
ConstructorsConstructorDescriptionConversationFactory(@NotNull Plugin plugin)Constructs a ConversationFactory. -
Method Summary
Modifier and TypeMethodDescriptionAdds aConversationAbandonedListenerto all conversations constructed by this factory.buildConversation(@NotNull Conversable forWhom)Constructs aConversationin accordance with the defaults set for this factory.thatExcludesNonPlayersWithMessage(@Nullable String playerOnlyMessage)Prevents this factory from creating a conversation for non-playerConversableobjects.withConversationCanceller(@NotNull ConversationCanceller canceller)Adds aConversationCancellerto constructed conversations.withEscapeSequence(@NotNull String escapeSequence)Sets the player input that, when received, will immediately terminate the conversation.withFirstPrompt(@Nullable Prompt firstPrompt)Sets the first prompt to use in all generated conversations.withInitialSessionData(@NotNull Map<Object,Object> initialSessionData)Sets any initial data with which to populate the conversation context sessionData map.withLocalEcho(boolean localEchoEnabled)Sets the local echo status for allConversations created by this factory.withModality(boolean modal)Sets the modality of allConversations created by this factory.withPrefix(@NotNull ConversationPrefix prefix)Sets theConversationPrefixthat prepends all output from all generated conversations.withTimeout(int timeoutSeconds)Sets the number of inactive seconds to wait before automatically abandoning all generated conversations.
-
Field Details
-
plugin
-
isModal
protected boolean isModal -
localEchoEnabled
protected boolean localEchoEnabled -
prefix
-
firstPrompt
-
initialSessionData
-
playerOnlyMessage
-
cancellers
-
abandonedListeners
-
-
Constructor Details
-
ConversationFactory
Constructs a ConversationFactory.- Parameters:
plugin- The plugin that owns the factory.
-
-
Method Details
-
withModality
Sets the modality of allConversations 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
Sets the local echo status for allConversations 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
@NotNull public @NotNull ConversationFactory withPrefix(@NotNull @NotNull ConversationPrefix prefix)Sets theConversationPrefixthat prepends all output from all generated conversations.The default is a
NullConversationPrefix;- Parameters:
prefix- The ConversationPrefix to use.- Returns:
- This object.
-
withTimeout
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)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)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)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)Adds aConversationCancellerto constructed conversations.- Parameters:
canceller- TheConversationCancellerto add.- Returns:
- This object.
-
thatExcludesNonPlayersWithMessage
@NotNull public @NotNull ConversationFactory thatExcludesNonPlayersWithMessage(@Nullable @Nullable String playerOnlyMessage)Prevents this factory from creating a conversation for non-playerConversableobjects.- 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)Adds aConversationAbandonedListenerto all conversations constructed by this factory.- Parameters:
listener- The listener to add.- Returns:
- This object.
-
buildConversation
Constructs aConversationin accordance with the defaults set for this factory.- Parameters:
forWhom- The entity for whom the new conversation is mediating.- Returns:
- A new conversation.
-