ZNPCsPlus/plugin/src/main/java/lol/pyr/znpcsplus/parsers/EnumParser.java

27 lines
827 B
Java

package lol.pyr.znpcsplus.parsers;
import lol.pyr.director.adventure.command.CommandContext;
import lol.pyr.director.adventure.parse.ParserType;
import lol.pyr.director.common.command.CommandExecutionException;
import lol.pyr.director.common.message.Message;
import java.util.Deque;
public class EnumParser<T extends Enum<T>> extends ParserType<T> {
private final Class<T> enumClass;
public EnumParser(Class<T> enumClass, Message<CommandContext> message) {
super(message);
this.enumClass = enumClass;
}
@Override
public T parse(Deque<String> deque) throws CommandExecutionException {
try {
return Enum.valueOf(enumClass, deque.pop().toUpperCase());
} catch (IllegalArgumentException e) {
throw new CommandExecutionException();
}
}
}