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}