package com.nedcraft.dpasi314.namecolor;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import ru.tehkode.permissions.bukkit.PermissionsEx;
public class Namecolor implements CommandExecutor {
private final Namecolor plugin;
private ChatColor [] restricted = { ChatColor.RED,ChatColor.ITALIC,ChatColor.MAGIC,ChatColor.RESET,ChatColor.AQUA,ChatColor.STRIKETHROUGH,ChatColor.UNDERLINE };
public Namecolor(Namecolor plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label,
String[] args) {
// TODO Auto-generated method stub
if (!(sender instanceof Player)) {
MessageHandler.SendConsoleMessage(Level.WARNING, plugin, "This Command can only be used by a player!");
return true;
}
Player player = (Player)sender;
if (args.length!=1) {
MessageHandler.SendErrorMessage(Level.WARNING, plugin, player, "Unknown command.");
return false;
}
if (!plugin.hasPermission(player, "nedcraft.namecolor")) {
MessageHandler.SendErrorMessage(Level.WARNING, plugin, player, "You don't have permission to use this command.");
return true;
}
ChatColor color;
try {
color = ChatColor.valueOf(args [0].toUpperCase());
} catch(IllegalArgumentException e) {
MessageHandler.SendErrorMessage(Level.WARNING, plugin, player, "That is NOT a color :(");
sendApplicableColors(player);
return true;
}
if(color==null) {
MessageHandler.SendErrorMessage(Level.WARNING, plugin, player, "That is NOT a color :(");
sendApplicableColors(player);
return true;
}
for(ChatColor r:restricted) {
if(color.equals(r)) {
MessageHandler.SendErrorMessage(Level.WARNING, plugin, player, "You're not allowed to use this color!");
sendApplicableColors(player);
return true;
}
}
PermissionsEx.getPermissionManager().getUser((Player)sender).setPrefix((String)color.toString(),null);
MessageHandler.SendMessage(player,"Your namecolor is now: " + color + color.name());
return true;
}
private boolean hasPermission(Player player, String string) {
// TODO Auto-generated method stub
return false;
}
private void sendApplicableColors(Player player) {
// TODO Auto-generated method stub
String[] message = new String[2];
message[0] = "Applicable Name Colors: ";
message[1] = "";
for(int i=0;i<ChatColor.values().length;i++) {
boolean restrictedValue = false;
for(int j=0;j<restricted.length;j++) {
if(ChatColor.values()[i].equals(restricted[j])) restrictedValue = true;
}
if(!restrictedValue) {
if(message[1].length()!=0) message[1] += ",";
message[1] += ChatColor.values()[i] + ChatColor.values()[i].name();
}
}
MessageHandler.SendMessage(player, message);
}
}