public class ConversationFactory
extends java.lang.Object
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.
Modifier and Type | Field | Description |
---|---|---|
protected java.util.List<ConversationAbandonedListener> |
abandonedListeners |
|
protected java.util.List<ConversationCanceller> |
cancellers |
|
protected Prompt |
firstPrompt |
|
protected java.util.Map<java.lang.Object,java.lang.Object> |
initialSessionData |
|
protected boolean |
isModal |
|
protected boolean |
localEchoEnabled |
|
protected java.lang.String |
playerOnlyMessage |
|
protected Plugin |
plugin |
|
protected ConversationPrefix |
prefix |
Constructor | Description |
---|---|
ConversationFactory(Plugin plugin) |
Constructs a ConversationFactory.
|
Modifier and Type | Method | Description |
---|---|---|
ConversationFactory |
addConversationAbandonedListener(ConversationAbandonedListener listener) |
Adds a
ConversationAbandonedListener to all conversations
constructed by this factory. |
Conversation |
buildConversation(Conversable forWhom) |
Constructs a
Conversation in accordance with the defaults set
for this factory. |
ConversationFactory |
thatExcludesNonPlayersWithMessage(java.lang.String playerOnlyMessage) |
Prevents this factory from creating a conversation for non-player
Conversable objects. |
ConversationFactory |
withConversationCanceller(ConversationCanceller canceller) |
Adds a
ConversationCanceller to constructed conversations. |
ConversationFactory |
withEscapeSequence(java.lang.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(java.util.Map<java.lang.Object,java.lang.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 all
Conversation s created by
this factory. |
ConversationFactory |
withModality(boolean modal) |
Sets the modality of all
Conversation s created by this factory. |
ConversationFactory |
withPrefix(ConversationPrefix prefix) |
Sets the
ConversationPrefix 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.
|
protected Plugin plugin
protected boolean isModal
protected boolean localEchoEnabled
protected ConversationPrefix prefix
protected Prompt firstPrompt
protected java.util.Map<java.lang.Object,java.lang.Object> initialSessionData
protected java.lang.String playerOnlyMessage
protected java.util.List<ConversationCanceller> cancellers
protected java.util.List<ConversationAbandonedListener> abandonedListeners
public ConversationFactory(Plugin plugin)
plugin
- The plugin that owns the factory.public ConversationFactory withModality(boolean modal)
Conversation
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.
modal
- The modality of all conversations to be created.public ConversationFactory withLocalEcho(boolean localEchoEnabled)
Conversation
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.localEchoEnabled
- The status of local echo.public ConversationFactory withPrefix(ConversationPrefix prefix)
ConversationPrefix
that prepends all output from all
generated conversations.
The default is a NullConversationPrefix
;
prefix
- The ConversationPrefix to use.public ConversationFactory withTimeout(int timeoutSeconds)
The default is 600 seconds (5 minutes).
timeoutSeconds
- The number of seconds to wait.public ConversationFactory withFirstPrompt(Prompt firstPrompt)
The default is Prompt.END_OF_CONVERSATION.
firstPrompt
- The first prompt.public ConversationFactory withInitialSessionData(java.util.Map<java.lang.Object,java.lang.Object> initialSessionData)
initialSessionData
- The conversation context's initial
sessionData.public ConversationFactory withEscapeSequence(java.lang.String escapeSequence)
escapeSequence
- Input to terminate the conversation.public ConversationFactory withConversationCanceller(ConversationCanceller canceller)
ConversationCanceller
to constructed conversations.canceller
- The ConversationCanceller
to add.public ConversationFactory thatExcludesNonPlayersWithMessage(java.lang.String playerOnlyMessage)
Conversable
objects.playerOnlyMessage
- The message to return to a non-play in lieu of
starting a conversation.public ConversationFactory addConversationAbandonedListener(ConversationAbandonedListener listener)
ConversationAbandonedListener
to all conversations
constructed by this factory.listener
- The listener to add.public Conversation buildConversation(Conversable forWhom)
Conversation
in accordance with the defaults set
for this factory.forWhom
- The entity for whom the new conversation is mediating.Copyright © 2018. All rights reserved.