001 package org.bukkit.conversations;
002
003 import org.bukkit.entity.Player;
004 import org.bukkit.plugin.Plugin;
005
006 /**
007 * PlayerNamePrompt is the base class for any prompt that requires the player
008 * to enter another player's name.
009 */
010 public abstract class PlayerNamePrompt extends ValidatingPrompt{
011 private Plugin plugin;
012
013 public PlayerNamePrompt(Plugin plugin) {
014 super();
015 this.plugin = plugin;
016 }
017
018 @Override
019 protected boolean isInputValid(ConversationContext context, String input) {
020 return plugin.getServer().getPlayer(input) != null;
021
022 }
023
024 @Override
025 protected Prompt acceptValidatedInput(ConversationContext context, String input) {
026 return acceptValidatedInput(context, plugin.getServer().getPlayer(input));
027 }
028
029 /**
030 * Override this method to perform some action with the user's player name
031 * response.
032 *
033 * @param context Context information about the conversation.
034 * @param input The user's player name response.
035 * @return The next {@link Prompt} in the prompt graph.
036 */
037 protected abstract Prompt acceptValidatedInput(ConversationContext context, Player input);
038 }