001package fr.aumgn.bukkitutils.command.arg.bukkit;
002
003import org.bukkit.command.CommandSender;
004import org.bukkit.entity.Player;
005
006import fr.aumgn.bukkitutils.command.CommandsMessages;
007import fr.aumgn.bukkitutils.command.arg.impl.AsbtractSenderArg;
008import fr.aumgn.bukkitutils.command.exception.CommandUsageError;
009import fr.aumgn.bukkitutils.playerref.PlayerRef;
010
011public class PlayerRefArg extends AsbtractSenderArg<PlayerRef> {
012
013    private final CommandsMessages messages;
014
015    public PlayerRefArg(CommandsMessages messages, String string) {
016        super(string);
017        this.messages = messages;
018    }
019
020    @Override
021    public PlayerRef value() {
022        return PlayerRef.get(string);
023    }
024
025    @Override
026    protected PlayerRef defaultFor(CommandSender sender) {
027        if (!(sender instanceof Player)) {
028            throw new CommandUsageError(messages.playerNeeded());
029        }
030
031        return PlayerRef.get((Player)sender);
032    }
033
034    @Override
035    protected String missingPermOtherMessage(String permission) {
036        return messages.missingPermissionForOther(permission);
037    }
038}