player.setDisplayName() with prefixes not working.

Discussion in 'Plugin Development' started by Techno, Jul 23, 2014.

Thread Status:
Not open for further replies.
  1. Hey everyone, I'm making a chat color plugin (for myself) and I have a weird error, on my test server I have permissions ex and I have a prefix for my rank and when I run the command like /color blue it doesn't change my name in any way..

    Code:
    Code:
     
    package me.bill4788.namecolors;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
     
     
    public class NameColors extends JavaPlugin {
     private String[] message = { "Woot!", "Woot!", "Woot!", "Woot!", "Woot!", "Woot!" };
     private String currentColor = "";
     private String playerChanged = "";
     
     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
     {
       Player player = (Player)sender;
     
       if (((commandLabel.equalsIgnoreCase("color")) || (commandLabel.equalsIgnoreCase("colour"))) && (
         (player.hasPermission("ucc.colorname.changecolor")) || (player.hasPermission("ucc.colorname.admin")))) {
         if (args.length == 0) {
           player.sendMessage(ChatColor.RED + "Error: Not enough args! Try /color help");
         }
         if (args.length == 1) {
           boolean cor = false;
           if (args[0].equalsIgnoreCase("reset")) {
             cor = true;
             player.sendMessage(ChatColor.GREEN + this.message[1]);
             player.setDisplayName(ChatColor.WHITE + player.getDisplayName());
           }
           if (args[0].equalsIgnoreCase("help")) {
             cor = true;
             player.sendMessage(ChatColor.GREEN + "/color reset <- Reset to white.");
             player.sendMessage(ChatColor.GREEN + "/color <COLOR> <- Change to color.");
             player.sendMessage(ChatColor.WHITE + "Colors: " + ChatColor.AQUA + "Aqua, " + 
               ChatColor.BLACK + "Black, " + ChatColor.BLUE + "Blue, " + 
               ChatColor.GOLD + "Gold, " + ChatColor.GRAY + "Gray, " + 
               ChatColor.GREEN + "Green, " + ChatColor.RED + "Red, " + 
               ChatColor.YELLOW + "Yellow, " + ChatColor.WHITE + "White, " + 
               ChatColor.LIGHT_PURPLE + "Light_Purple, " + ChatColor.DARK_AQUA + "Dark_aqua, " + 
               ChatColor.DARK_BLUE + "Dark_blue, " + ChatColor.DARK_GRAY + "Dark_gray, " + 
               ChatColor.DARK_GREEN + "Dark_green, " + ChatColor.DARK_PURPLE + "Dark_purple, " + 
               ChatColor.DARK_RED + "Dark_red, " + ChatColor.DARK_RED + "R" + ChatColor.RED + "a" + ChatColor.YELLOW + "i" + ChatColor.GREEN + "n" + ChatColor.BLUE + "b" + ChatColor.LIGHT_PURPLE + "o" + ChatColor.DARK_PURPLE + "w");
           }
           if (args[0].equalsIgnoreCase("AQUA")) {
             cor = true;
             this.currentColor = "AQUA";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.AQUA + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("RAINBOW")) {
             try {
               cor = true;
               this.currentColor = "RAINBOW";
               
               player.sendMessage(ChatColor.GREEN + this.message[0]);
               String name = player.getName();
               String display = "";
               int ColorLoop = 0;
               for (int loop = 0; loop < name.length(); loop++) {
                 if (ColorLoop == 0) {
                   display = display + ChatColor.DARK_RED + name.charAt(loop);
                 }
                 if (ColorLoop == 1) {
                   display = display + ChatColor.RED + name.charAt(loop);
                 }
                 if (ColorLoop == 2) {
                   display = display + ChatColor.YELLOW + name.charAt(loop);
                 }
                 if (ColorLoop == 3) {
                   display = display + ChatColor.GREEN + name.charAt(loop);
                 }
                 if (ColorLoop == 4) {
                   display = display + ChatColor.BLUE + name.charAt(loop);
                 }
                 if (ColorLoop == 5) {
                   display = display + ChatColor.LIGHT_PURPLE + name.charAt(loop);
                 }
                 if (ColorLoop == 6) {
                   display = display + ChatColor.DARK_PURPLE + name.charAt(loop);
                 }
                 ColorLoop++;
                 if (ColorLoop > 6) {
                   ColorLoop = 0;
                 }
                 player.setDisplayName(display);
               }
             } catch (Exception e) {
               Bukkit.getConsoleSender().sendMessage(ChatColor.DARK_RED + "[ColorName] " + ChatColor.RED + "Error on setting rainbow.  Please report on the colorName plugin page.");
             }
           }
     
           if (args[0].equalsIgnoreCase("BLACK")) {
             cor = true;
             this.currentColor = "BLACK";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.BLACK + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("BLUE")) {
             cor = true;
             this.currentColor = "BLUE";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.BLUE + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("GOLD")) {
             cor = true;
             this.currentColor = "GOLD";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.GOLD + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("GRAY")) {
             cor = true;
             this.currentColor = "GRAY";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.GRAY + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("GREEN")) {
             cor = true;
             this.currentColor = "GREEN";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.GREEN + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("RED")) {
             cor = true;
             this.currentColor = "RED";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.RED + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("YELLOW")) {
             cor = true;
             this.currentColor = "YELLOW";
             
     
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.YELLOW + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("WHITE")) {
             cor = true;
             this.currentColor = "WHITE";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.WHITE + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("LIGHT_PURPLE")) {
             cor = true;
             this.currentColor = "LIGHT_PURPLE";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.LIGHT_PURPLE + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_AQUA")) {
             cor = true;
             this.currentColor = "DRAK_AQUA";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_AQUA + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_BLUE")) {
             cor = true;
             this.currentColor = "DARK_BLUE";
             
     
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_BLUE + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_GRAY")) {
             cor = true;
             this.currentColor = "DARK_GRAY";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_GRAY + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_GREEN")) {
             cor = true;
             this.currentColor = "DARK_GREEN";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_GREEN + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_PURPLE")) {
             cor = true;
             this.currentColor = "DARK_PURPLE";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_PURPLE + player.getDisplayName() + ChatColor.WHITE);
           }
           if (args[0].equalsIgnoreCase("DARK_RED")) {
             cor = true;
             this.currentColor = "DARK_RED";
             
             player.sendMessage(ChatColor.GREEN + this.message[0]);
             player.setDisplayName(ChatColor.DARK_RED + player.getDisplayName() + ChatColor.WHITE);
           }
           if (!cor) {
             player.sendMessage(ChatColor.RED + "Error!" + ChatColor.WHITE + " Try: /color help");
           }
         }
         if (args.length == 2) {
           boolean cor = false;
           if (player.hasPermission("ucc.colorname.admin")) {
             Player player1 = player.getServer().getPlayer(args[0]);
             if (player1.isOnline()) {
               if (args[1].equalsIgnoreCase("reset")) {
                 this.playerChanged = player1.getName();
                 
                 cor = true;
                 player1.sendMessage(ChatColor.GREEN + this.message[5]);
                 player1.sendMessage(ChatColor.GREEN + this.message[4]);
                 player.setDisplayName(ChatColor.WHITE + player.getDisplayName());
               }
     
               if (args[1].equalsIgnoreCase("AQUA")) {
                 cor = true;
                 this.currentColor = "AQUA";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.AQUA + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[0].equalsIgnoreCase("RAINBOW")) {
                 try {
                   cor = true;
                   this.currentColor = "RAINBOW";
                   
                   player.sendMessage(ChatColor.GREEN + this.message[2]);
                   player.sendMessage(ChatColor.GREEN + this.message[3]);
                   String name = player.getName();
                   String display = "";
                   int ColorLoop = 0;
                   for (int loop = 0; loop < name.length(); loop++) {
                     if (ColorLoop == 0) {
                       display = display + ChatColor.DARK_RED + name.charAt(loop);
                     }
                     if (ColorLoop == 1) {
                       display = display + ChatColor.RED + name.charAt(loop);
                     }
                     if (ColorLoop == 2) {
                       display = display + ChatColor.YELLOW + name.charAt(loop);
                     }
                     if (ColorLoop == 3) {
                       display = display + ChatColor.GREEN + name.charAt(loop);
                     }
                     if (ColorLoop == 4) {
                       display = display + ChatColor.BLUE + name.charAt(loop);
                     }
                     if (ColorLoop == 5) {
                       display = display + ChatColor.LIGHT_PURPLE + name.charAt(loop);
                     }
                     if (ColorLoop == 6) {
                       display = display + ChatColor.DARK_PURPLE + name.charAt(loop);
                     }
                     ColorLoop++;
                     if (ColorLoop > 6) {
                       ColorLoop = 0;
                     }
                   }
                   player.setDisplayName(display);
                 } catch (Exception e) {
                   Bukkit.getConsoleSender().sendMessage(ChatColor.DARK_RED + "[ColorName] " + ChatColor.RED + "Error on setting rainbow.  Please report on the colorName plugin page.");
                 }
               }
     
               if (args[1].equalsIgnoreCase("BLACK")) {
                 cor = true;
                 this.currentColor = "BLACK";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.BLACK + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("BLUE")) {
                 cor = true;
                 this.currentColor = "BLUE";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.BLUE + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("GOLD")) {
                 cor = true;
                 this.currentColor = "GOLD";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.GOLD + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("GRAY")) {
                 cor = true;
                 this.currentColor = "GRAY";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.GRAY + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("GREEN")) {
                 cor = true;
                 this.currentColor = "GREEN";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.GREEN + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("RED")) {
                 cor = true;
                 this.currentColor = "RED";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.RED + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("YELLOW")) {
                 cor = true;
                 this.currentColor = "YELLOW";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.YELLOW + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("WHITE")) {
                 cor = true;
                 this.currentColor = "WHITE";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.WHITE + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("LIGHT_PURPLE")) {
                 cor = true;
                 this.currentColor = "LIGHT_PURPLE";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.LIGHT_PURPLE + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_AQUA")) {
                 cor = true;
                 this.currentColor = "DARK_AQUA";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_AQUA + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_BLUE")) {
                 cor = true;
                 this.currentColor = "DARK_BLUE";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_BLUE + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_GRAY")) {
                 cor = true;
                 this.currentColor = "DARK_GRAY";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_GRAY + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_GREEN")) {
                 cor = true;
                 this.currentColor = "DARK_GREEN";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_GREEN + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_PURPLE")) {
                 cor = true;
                 this.currentColor = "DARK_PURPLE";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_PURPLE + player.getDisplayName() + ChatColor.WHITE);
               }
               if (args[1].equalsIgnoreCase("DARK_RED")) {
                 cor = true;
                 this.currentColor = "DARK_RED";
                 this.playerChanged = player.getDisplayName();
                 
                 player.sendMessage(ChatColor.GREEN + this.message[2]);
                 player.sendMessage(ChatColor.GREEN + this.message[3]);
                 player.setDisplayName(ChatColor.DARK_RED + player.getDisplayName() + ChatColor.WHITE);
               }
             }
             else {
               player1.sendMessage(ChatColor.RED + "Error: " + " is not online!");
             }
             if (!cor) {
               player1.sendMessage(ChatColor.RED + "Error: args[1] is invalid.");
             }
           }
           else
           {
             player.sendMessage(ChatColor.RED + "Error: You don't have permission!");
           }
         }
         if (args.length >= 3) {
           player.sendMessage(ChatColor.RED + "Error: Too many args!");
         }
       }
     
       return false;
       
     }
    }
    
    Thanks, Techno..
     
  2. Offline

    Dragonphase

    Techno

    If you have a prefix for your rank, then PermissionsEx is modifying your display name last. In other words, your code works, but PEX is modifying your display name last, so any changes you made are overwritten.
     
  3. Dragonphase

    How would you get past that? Or is there no way?
     
  4. Offline

    Dragonphase

    Techno

    I don't have a clue I'm afraid, but you could check out the PermissionsEx forum and get some insight on how to bypass it. Or wait for someone to reply to this thread who knows how to do it.
     
  5. Dragonphase

    Okay, thanks man!

    bump

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 9, 2016
Thread Status:
Not open for further replies.

Share This Page