001 package org.bukkit.conversations; 002 003 /** 004 * A ConversationCanceller is a class that cancels an active {@link 005 * Conversation}. A Conversation can have more than one ConversationCanceller. 006 */ 007 public interface ConversationCanceller extends Cloneable { 008 009 /** 010 * Sets the conversation this ConversationCanceller can optionally cancel. 011 * 012 * @param conversation A conversation. 013 */ 014 public void setConversation(Conversation conversation); 015 016 /** 017 * Cancels a conversation based on user input. 018 * 019 * @param context Context information about the conversation. 020 * @param input The input text from the user. 021 * @return True to cancel the conversation, False otherwise. 022 */ 023 public boolean cancelBasedOnInput(ConversationContext context, String input); 024 025 /** 026 * Allows the {@link ConversationFactory} to duplicate this 027 * ConversationCanceller when creating a new {@link Conversation}. 028 * <p> 029 * Implementing this method should reset any internal object state. 030 * 031 * @return A clone. 032 */ 033 public ConversationCanceller clone(); 034 }