42 lines
1.6 KiB
Java
42 lines
1.6 KiB
Java
package org.bukkit.conversations;
|
|
|
|
import org.apache.commons.lang.ArrayUtils;
|
|
import org.apache.commons.lang.BooleanUtils;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
/**
|
|
* BooleanPrompt is the base class for any prompt that requires a boolean
|
|
* response from the user.
|
|
*/
|
|
public abstract class BooleanPrompt extends ValidatingPrompt {
|
|
|
|
public BooleanPrompt() {
|
|
super();
|
|
}
|
|
|
|
@Override
|
|
protected boolean isInputValid(@NotNull ConversationContext context, @NotNull String input) {
|
|
String[] accepted = {/* Apache values: */ "true", "false", "on", "off", "yes", "no", /* Additional values: */ "y", "n", "1", "0", "right", "wrong", "correct", "incorrect", "valid", "invalid"};
|
|
return ArrayUtils.contains(accepted, input.toLowerCase());
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
protected Prompt acceptValidatedInput(@NotNull ConversationContext context, @NotNull String input) {
|
|
if (input.equalsIgnoreCase("y") || input.equals("1") || input.equalsIgnoreCase("right") || input.equalsIgnoreCase("correct") || input.equalsIgnoreCase("valid")) input = "true";
|
|
return acceptValidatedInput(context, BooleanUtils.toBoolean(input));
|
|
}
|
|
|
|
/**
|
|
* Override this method to perform some action with the user's boolean
|
|
* response.
|
|
*
|
|
* @param context Context information about the conversation.
|
|
* @param input The user's boolean response.
|
|
* @return The next {@link Prompt} in the prompt graph.
|
|
*/
|
|
@Nullable
|
|
protected abstract Prompt acceptValidatedInput(@NotNull ConversationContext context, boolean input);
|
|
}
|