/FileExtraction/Java_unseen/Wind-Development_WindSpigot/WindSpigot-API/src/main/java/org/bukkit/conversations/ConversationCanceller.java
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();
}
