001package fr.aumgn.bukkitutils.command.arg;
002
003import org.bukkit.command.CommandSender;
004
005public interface SenderArg<V> {
006
007    /**
008     * Returns the parsed value or compute it from
009     * the given CommandSender if argument is omitted.
010     */
011    V valueOr(CommandSender sender);
012
013    /**
014     * Same as {@link #valueOr(CommandSender)}
015     * but also check the given permission if
016     * the argument is specified.
017     */
018    V valueWithPermOr(String permission, CommandSender sender);
019}