package org.bukkit.conversations; /** * A Prompt is the main constituent of a {@link Conversation}. Each prompt * displays text to the user and optionally waits for a user's response. * Prompts are chained together into a directed graph that represents the * conversation flow. To halt a conversation, END_OF_CONVERSATION is returned * in liu of another Prompt object. */ public interface Prompt extends Cloneable { /** * A convenience constant for indicating the end of a conversation. */ static final Prompt END_OF_CONVERSATION = null; /** * Gets the text to display to the user when this prompt is first * presented. * * @param context Context information about the conversation. * @return The text to display. */ String getPromptText(ConversationContext context); /** * Checks to see if this prompt implementation should wait for user input * or immediately display the next prompt. * * @param context Context information about the conversation. * @return If true, the {@link Conversation} will wait for input before * continuing. */ boolean blocksForInput(ConversationContext context); /** * Accepts and processes input from the user. Using the input, the next * Prompt in the prompt graph is returned. * * @param context Context information about the conversation. * @param input The input text from the user. * @return The next Prompt in the prompt graph. */ Prompt acceptInput(ConversationContext context, String input); }