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> extends ParserType { private final Class enumClass; public EnumParser(Class enumClass, Message message) { super(message); this.enumClass = enumClass; } @Override public T parse(Deque deque) throws CommandExecutionException { try { return Enum.valueOf(enumClass, deque.pop().toUpperCase()); } catch (IllegalArgumentException e) { throw new CommandExecutionException(); } } }