I need help translating color codes

Discussion in 'Plugin Development' started by Mike111177, Jul 17, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    Mike111177

    What is the best way to turn lets say
    Code:
    "&4Apples, &6Golden Apples" 
    
    to
    Code:
    ChatColor.RED + "Apples, " + ChatColor.GOLD + "Golden Apples"
    
     
  2. Offline

    evilmidget38

    ChatColor.translateAlternateColorCodes('&', string)
     
  3. Offline

    Mike111177

    this is what i have
    Code:java
    1. package net.othercraft.colormotd;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.event.server.ServerListPingEvent;
    7. import org.bukkit.plugin.PluginManager;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class ColorMOTD extends JavaPlugin implements Listener {
    11.  
    12. String motd;
    13.  
    14. public void onEnable(){
    15. getConfig().addDefault("MOTD", "A Minecraft Server.");
    16. getConfig().options().copyDefaults(true);
    17. saveConfig();
    18. motd = ChatColor.translateAlternateColorCodes('&', getConfig().getString("MOTD"));
    19. PluginManager pm = getServer().getPluginManager();
    20. pm.registerEvents(this, this);
    21. }
    22.  
    23.  
    24.  
    25. }

    What happens is when i put a color code in the config it deletes it when i reload...
     
  4. Offline

    evilmidget38

    you could always keep a separate string for it non-colored.
     
  5. Offline

    scranner

    Code:
    public String colorize(String msg)
        {
            String coloredMsg = "";
            for(int i = 0; i < msg.length(); i++)
            {
                if(msg.charAt(i) == '&')
                    coloredMsg += '§';
                else
                    coloredMsg += msg.charAt(i);
            }
            return coloredMsg;
        }
    
    this allows you to do this

    player.sendMessage(colorize("&6heya noob"));
     
  6. Offline

    syszee


    I love you... I have been stuck on colorizing for the past 2 hours. Most of that is due to the fact that my internet has been an extreme annoyance. ;)
     
  7. Offline

    kreashenz

    Colourizing isn't that hard, bro. I use one simple method whenever I'm doing it, and the method is usually static so I can call it from my Utils class.
    Code:java
    1. public static String format(String format){
    2. return ChatColor.translateAlternateColorCodes('&', format);
    3. }


    If that doesn't work (open)
    If that doesn't work, you can always use this class, given to me by a friend then use ChatColour.format(String);

    Code:java
    1. public enum ColourUtils {
    2. BLACK("&0", ChatColor.BLACK.toString()),
    3. DARK_BLUE("&1", ChatColor.DARK_BLUE.toString()),
    4. DARK_GREEN("&2", ChatColor.DARK_GREEN.toString()),
    5. DARK_AQUA("&3", ChatColor.DARK_AQUA.toString()),
    6. DARK_RED("&4", ChatColor.DARK_RED.toString()),
    7. DARK_PURPLE("&5", ChatColor.DARK_PURPLE.toString()),
    8. GOLD("&6", ChatColor.GOLD.toString()),
    9. GRAY("&7", ChatColor.GRAY.toString()),
    10. DARK_GRAY("&8", ChatColor.DARK_GRAY.toString()),
    11. BLUE("&9", ChatColor.BLUE.toString()),
    12. GREEN("&a", ChatColor.GREEN.toString()),
    13. AQUA("&b", ChatColor.AQUA.toString()),
    14. RED("&c", ChatColor.RED.toString()),
    15. LIGHT_PURPLE("&d", ChatColor.LIGHT_PURPLE.toString()),
    16. YELLOW("&e", ChatColor.YELLOW.toString()),
    17. WHITE("&f", ChatColor.WHITE.toString()),
    18. MAGIC("&k", ChatColor.MAGIC.toString()),
    19. BOLD("&l", ChatColor.BOLD.toString()),
    20. STRIKETHROUGH("&m", ChatColor.STRIKETHROUGH.toString()),
    21. UNDERLINE("&n", ChatColor.UNDERLINE.toString()),
    22. ITALIC("&o", ChatColor.ITALIC.toString()),
    23. RESET("&r", ChatColor.RESET.toString());
    24.  
    25. private final String input;
    26. private final String MinecraftColor;
    27.  
    28. private ColourUtils(String input, String MinecraftColor) { this.input = input;
    29. this.MinecraftColor = MinecraftColor; }
    30.  
    31. public String getMinecraftColor()
    32. {
    33. return this.MinecraftColor;
    34. }
    35.  
    36. public String getInput() {
    37. return this.input;
    38. }
    39. public static String format(String message) {
    40. String msg = message;
    41. for (ColourUtils c : values()) {
    42. msg = msg.replace(c.getInput(), c.getMinecraftColor());
    43. }
    44. return msg;
    45. }
    46. }
     
Thread Status:
Not open for further replies.

Share This Page