Add API in Argument
Dieser Commit ist enthalten in:
Ursprung
80b85e3ee9
Commit
710ec9b6e7
@ -24,22 +24,28 @@ package de.steamwar.commandn;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.BiPredicate;
|
||||||
|
|
||||||
public interface Argument<T> {
|
public interface Argument<T> {
|
||||||
|
|
||||||
T parse(CommandSender sender, String arg);
|
T parse(String arg) throws InvalidArgumentException;
|
||||||
|
void checkConstraints(CommandSender sender, T argument) throws InvalidArgumentException;
|
||||||
|
|
||||||
List<String> tabComplete(CommandSender sender, String arg) throws InvalidArgumentException;
|
List<String> tabComplete(CommandSender sender, String arg) throws InvalidArgumentException;
|
||||||
|
default BiPredicate<String, String> tabCompleteFilter() {
|
||||||
|
return String::startsWith;
|
||||||
|
}
|
||||||
|
|
||||||
abstract class IntArgument implements Argument<Integer> {
|
abstract class IntArgument implements Argument<Integer> {
|
||||||
@Override
|
@Override
|
||||||
public Integer parse(CommandSender sender, String arg) {
|
public Integer parse(String arg) {
|
||||||
return Integer.parseInt(arg);
|
return Integer.parseInt(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class DoubleArgument implements Argument<Double> {
|
abstract class DoubleArgument implements Argument<Double> {
|
||||||
@Override
|
@Override
|
||||||
public Double parse(CommandSender sender, String arg) {
|
public Double parse(String arg) {
|
||||||
return Double.parseDouble(arg);
|
return Double.parseDouble(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren