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