34 lines
1 KiB
Java
34 lines
1 KiB
Java
package de.kencommand.api.processing;
|
|
|
|
import de.kencommand.api.parsing.ParsedArgument;
|
|
import de.kentoj.scrow.bukkit.command.exception.CommandInvocationException;
|
|
import de.kentoj.scrow.bukkit.command.literal.CommandArgument;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Entity;
|
|
import org.bukkit.entity.Player;
|
|
|
|
public interface CommandContext<T> {
|
|
|
|
T getSender();
|
|
|
|
/**
|
|
* @return Object that is parsed from the raw argument
|
|
* @throws CommandInvocationException if no value given and no default value supplied
|
|
*/
|
|
<T> ParsedArgument<T> getArgData(String name);
|
|
|
|
@SuppressWarnings("unchecked")
|
|
default <T> T getArgData(CommandArgument<T> arg) {
|
|
return (T) getArgData(arg.getName());
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
default <T> T getArg(String name) {
|
|
return (T) getArgData(name).getValue();
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
default <T> T getArg(CommandArgument<T> arg) {
|
|
return (T) getArgData(arg.getName()).getValue();
|
|
}
|
|
}
|