org.bukkit.conversations
Class ConversationFactory

java.lang.Object
  extended by 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 Summary
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
ConversationFactory(Plugin plugin)
          Constructs a ConversationFactory.
 
Method Summary
 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(String playerOnlyMessage)
          Prevents this factory from creating a conversation for non-player Conversable objects.
 ConversationFactory withConversationCanceller(ConversationCanceller canceller)
          Adds a 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 all Conversations created by this factory.
 ConversationFactory withModality(boolean modal)
          Sets the modality of all Conversations 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

plugin

protected Plugin plugin

isModal

protected boolean isModal

localEchoEnabled

protected boolean localEchoEnabled

prefix

protected ConversationPrefix prefix

firstPrompt

protected Prompt firstPrompt

initialSessionData

protected Map<Object,Object> initialSessionData

playerOnlyMessage

protected String playerOnlyMessage

cancellers

protected List<ConversationCanceller> cancellers

abandonedListeners

protected List<ConversationAbandonedListener> abandonedListeners
Constructor Detail

ConversationFactory

public ConversationFactory(Plugin plugin)
Constructs a ConversationFactory.

Parameters:
plugin - The plugin that owns the factory.
Method Detail

withModality

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

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

public ConversationFactory withPrefix(ConversationPrefix prefix)
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

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

public ConversationFactory withFirstPrompt(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

public ConversationFactory withInitialSessionData(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

public ConversationFactory withEscapeSequence(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

public ConversationFactory withConversationCanceller(ConversationCanceller canceller)
Adds a to constructed conversations.

Parameters:
canceller - The to add.
Returns:
This object.

thatExcludesNonPlayersWithMessage

public ConversationFactory thatExcludesNonPlayersWithMessage(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

public ConversationFactory addConversationAbandonedListener(ConversationAbandonedListener listener)
Adds a ConversationAbandonedListener to all conversations constructed by this factory.

Parameters:
listener - The listener to add.
Returns:
This object.

buildConversation

public Conversation buildConversation(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.


Copyright © 2013. All Rights Reserved.