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}