001 package org.bukkit.conversations; 002 003 import org.apache.commons.lang.ArrayUtils; 004 import org.apache.commons.lang.BooleanUtils; 005 006 /** 007 * BooleanPrompt is the base class for any prompt that requires a boolean 008 * response from the user. 009 */ 010 public abstract class BooleanPrompt extends ValidatingPrompt{ 011 012 public BooleanPrompt() { 013 super(); 014 } 015 016 @Override 017 protected boolean isInputValid(ConversationContext context, String input) { 018 String[] accepted = {"true", "false", "on", "off", "yes", "no"}; 019 return ArrayUtils.contains(accepted, input.toLowerCase()); 020 } 021 022 @Override 023 protected Prompt acceptValidatedInput(ConversationContext context, String input) { 024 return acceptValidatedInput(context, BooleanUtils.toBoolean(input)); 025 } 026 027 /** 028 * Override this method to perform some action with the user's boolean 029 * response. 030 * 031 * @param context Context information about the conversation. 032 * @param input The user's boolean response. 033 * @return The next {@link Prompt} in the prompt graph. 034 */ 035 protected abstract Prompt acceptValidatedInput(ConversationContext context, boolean input); 036 }