Bukkit/src/main/java/org/bukkit/conversations/FixedSetPrompt.java

41 lines
1.1 KiB
Java

package org.bukkit.conversations;
import org.apache.commons.lang.StringUtils;
import java.util.Arrays;
import java.util.List;
/**
* FixedSetPrompt is the base class for any prompt that requires a fixed set response from the user.
*/
public abstract class FixedSetPrompt extends ValidatingPrompt {
protected List<String> fixedSet;
/**
* Creates a FixedSetPrompt from a set of strings.
* foo = new FixedSetPrompt("bar", "cheese", "panda");
* @param fixedSet A fixed set of strings, one of which the user must type.
*/
public FixedSetPrompt(String... fixedSet) {
super();
this.fixedSet = Arrays.asList(fixedSet);
}
private FixedSetPrompt() {}
@Override
protected boolean isInputValid(ConversationContext context, String input) {
return fixedSet.contains(input);
}
/**
* Utility function to create a formatted string containing all the options declared in the constructor.
* The result is formatted like "[bar, cheese, panda]"
* @return
*/
protected String formatFixedSet() {
return "[" + StringUtils.join(fixedSet, ", ") + "]";
}
}