Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / conversations / ConversationCanceller.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.conversations;

/**
 * A ConversationCanceller is a class that cancels an active {@link
 * Conversation}. A Conversation can have more than one ConversationCanceller.
 */
public interface ConversationCanceller extends Cloneable
{

	/**
	 * Sets the conversation this ConversationCanceller can optionally cancel.
	 *
	 * @param conversation A conversation.
	 */
	public void setConversation(Conversation conversation);

	/**
	 * Cancels a conversation based on user input.
	 *
	 * @param context Context information about the conversation.
	 * @param input   The input text from the user.
	 * @return True to cancel the conversation, False otherwise.
	 */
	public boolean cancelBasedOnInput(ConversationContext context, String input);

	/**
	 * Allows the {@link ConversationFactory} to duplicate this
	 * ConversationCanceller when creating a new {@link Conversation}.
	 * <p>
	 * Implementing this method should reset any internal object state.
	 *
	 * @return A clone.
	 */
	public ConversationCanceller clone();
}