Package org.bukkit.conversations
Class ConversationFactory
- java.lang.Object
-
- org.bukkit.conversations.ConversationFactory
-
public class ConversationFactory extends Object
A ConversationFactory is responsible for creating aConversation
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
Fields Modifier and Type Field Description protected List<ConversationAbandonedListener>
abandonedListeners
protected List<ConversationCanceller>
cancellers
protected Prompt
firstPrompt
protected Map<Object,Object>
initialSessionData
protected boolean
isModal
protected boolean
localEchoEnabled
protected String
playerOnlyMessage
protected Plugin
plugin
protected ConversationPrefix
prefix
-
Constructor Summary
Constructors Constructor Description ConversationFactory(Plugin plugin)
Constructs a ConversationFactory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConversationFactory
addConversationAbandonedListener(ConversationAbandonedListener listener)
Adds aConversationAbandonedListener
to all conversations constructed by this factory.Conversation
buildConversation(Conversable forWhom)
Constructs aConversation
in accordance with the defaults set for this factory.ConversationFactory
thatExcludesNonPlayersWithMessage(String playerOnlyMessage)
Prevents this factory from creating a conversation for non-playerConversable
objects.ConversationFactory
withConversationCanceller(ConversationCanceller canceller)
Adds aConversationCanceller
to constructed conversations.ConversationFactory
withEscapeSequence(String escapeSequence)
Sets the player input that, when received, will immediately terminate the conversation.ConversationFactory
withFirstPrompt(Prompt firstPrompt)
Sets the first prompt to use in all generated conversations.ConversationFactory
withInitialSessionData(Map<Object,Object> initialSessionData)
Sets any initial data with which to populate the conversation context sessionData map.ConversationFactory
withLocalEcho(boolean localEchoEnabled)
Sets the local echo status for allConversation
s created by this factory.ConversationFactory
withModality(boolean modal)
Sets the modality of allConversation
s created by this factory.ConversationFactory
withPrefix(ConversationPrefix prefix)
Sets theConversationPrefix
that prepends all output from all generated conversations.ConversationFactory
withTimeout(int timeoutSeconds)
Sets the number of inactive seconds to wait before automatically abandoning all generated conversations.
-
-
-
Field Detail
-
plugin
protected Plugin plugin
-
isModal
protected boolean isModal
-
localEchoEnabled
protected boolean localEchoEnabled
-
prefix
protected ConversationPrefix prefix
-
firstPrompt
protected Prompt firstPrompt
-
playerOnlyMessage
protected String playerOnlyMessage
-
cancellers
protected List<ConversationCanceller> cancellers
-
abandonedListeners
protected List<ConversationAbandonedListener> abandonedListeners
-
-
Constructor Detail
-
ConversationFactory
public ConversationFactory(@NotNull Plugin plugin)
Constructs a ConversationFactory.- Parameters:
plugin
- The plugin that owns the factory.
-
-
Method Detail
-
withModality
@NotNull public ConversationFactory withModality(boolean modal)
Sets the modality of allConversation
s 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 allConversation
s 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 ConversationFactory withPrefix(@NotNull ConversationPrefix prefix)
Sets theConversationPrefix
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 aConversationCanceller
to constructed conversations.- Parameters:
canceller
- TheConversationCanceller
to add.- Returns:
- This object.
-
thatExcludesNonPlayersWithMessage
@NotNull public ConversationFactory thatExcludesNonPlayersWithMessage(@Nullable String playerOnlyMessage)
Prevents this factory from creating a conversation for non-playerConversable
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 aConversationAbandonedListener
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 aConversation
in accordance with the defaults set for this factory.- Parameters:
forWhom
- The entity for whom the new conversation is mediating.- Returns:
- A new conversation.
-
-