package io.dico.dicore.command.parameter.type; import io.dico.dicore.command.CommandException; import io.dico.dicore.command.parameter.ArgumentBuffer; import io.dico.dicore.command.parameter.Parameter; import org.bukkit.command.CommandSender; /** * An abstraction for parameter types that only parse a single argument * * @param the parameter type * @param parameter info object type */ public abstract class SimpleParameterType extends ParameterType { public SimpleParameterType(Class returnType) { super(returnType); } public SimpleParameterType(Class returnType, ParameterConfig paramConfig) { super(returnType, paramConfig); } protected abstract TReturn parse(Parameter parameter, CommandSender sender, String input) throws CommandException; @Override public TReturn parse(Parameter parameter, CommandSender sender, ArgumentBuffer buffer) throws CommandException { return parse(parameter, sender, buffer.requireNext(parameter.getName())); } }