Created
May 10, 2018 05:29
-
-
Save RoboMWM/8e57324ac8fc80cb7caa13e39e5745ed to your computer and use it in GitHub Desktop.
color converter from https://github.com/rmct/AutoReferee/blob/master/src/main/java/org/mctourney/autoreferee/util/ColorConverter.java but it's missing color to hex as an actual hex value (i.e. no int)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package org.mctourney.autoreferee.util; | |
| import java.util.Map; | |
| import org.bukkit.ChatColor; | |
| import org.bukkit.Color; | |
| import org.bukkit.DyeColor; | |
| import com.google.common.collect.Maps; | |
| public abstract class ColorConverter | |
| { | |
| private static Map<DyeColor, ChatColor> dyeChatMap; | |
| static | |
| { | |
| dyeChatMap = Maps.newHashMap(); | |
| dyeChatMap.put(DyeColor.BLACK, ChatColor.DARK_GRAY); | |
| dyeChatMap.put(DyeColor.BLUE, ChatColor.DARK_BLUE); | |
| dyeChatMap.put(DyeColor.BROWN, ChatColor.GOLD); | |
| dyeChatMap.put(DyeColor.CYAN, ChatColor.AQUA); | |
| dyeChatMap.put(DyeColor.GRAY, ChatColor.GRAY); | |
| dyeChatMap.put(DyeColor.GREEN, ChatColor.DARK_GREEN); | |
| dyeChatMap.put(DyeColor.LIGHT_BLUE, ChatColor.BLUE); | |
| dyeChatMap.put(DyeColor.LIME, ChatColor.GREEN); | |
| dyeChatMap.put(DyeColor.MAGENTA, ChatColor.LIGHT_PURPLE); | |
| dyeChatMap.put(DyeColor.ORANGE, ChatColor.GOLD); | |
| dyeChatMap.put(DyeColor.PINK, ChatColor.LIGHT_PURPLE); | |
| dyeChatMap.put(DyeColor.PURPLE, ChatColor.DARK_PURPLE); | |
| dyeChatMap.put(DyeColor.RED, ChatColor.DARK_RED); | |
| dyeChatMap.put(DyeColor.SILVER, ChatColor.GRAY); | |
| dyeChatMap.put(DyeColor.WHITE, ChatColor.WHITE); | |
| dyeChatMap.put(DyeColor.YELLOW, ChatColor.YELLOW); | |
| } | |
| public static ChatColor dyeToChat(DyeColor dclr) | |
| { | |
| if (dyeChatMap.containsKey(dclr)) | |
| return dyeChatMap.get(dclr); | |
| return ChatColor.MAGIC; | |
| } | |
| private static Map<ChatColor, String> chatHexMap; | |
| static | |
| { | |
| chatHexMap = Maps.newHashMap(); | |
| chatHexMap.put(ChatColor.BLACK, "#000"); | |
| chatHexMap.put(ChatColor.DARK_BLUE, "#00a"); | |
| chatHexMap.put(ChatColor.DARK_GREEN, "#0a0"); | |
| chatHexMap.put(ChatColor.DARK_AQUA, "#0aa"); | |
| chatHexMap.put(ChatColor.DARK_RED, "#a00"); | |
| chatHexMap.put(ChatColor.DARK_PURPLE, "#a0a"); | |
| chatHexMap.put(ChatColor.GOLD, "#fa0"); | |
| chatHexMap.put(ChatColor.GRAY, "#999"); | |
| chatHexMap.put(ChatColor.DARK_GRAY, "#555"); | |
| chatHexMap.put(ChatColor.BLUE, "#55f"); | |
| chatHexMap.put(ChatColor.GREEN, "#5c5"); | |
| chatHexMap.put(ChatColor.AQUA, "#5cc"); | |
| chatHexMap.put(ChatColor.RED, "#f55"); | |
| chatHexMap.put(ChatColor.LIGHT_PURPLE, "#f5f"); | |
| chatHexMap.put(ChatColor.YELLOW, "#cc5"); | |
| chatHexMap.put(ChatColor.WHITE, "#aaa"); | |
| } | |
| public static String chatToHex(ChatColor clr) | |
| { | |
| if (chatHexMap.containsKey(clr)) | |
| return chatHexMap.get(clr); | |
| return "#000"; | |
| } | |
| private static Map<DyeColor, String> dyeHexMap; | |
| static | |
| { | |
| dyeHexMap = Maps.newHashMap(); | |
| dyeHexMap.put(DyeColor.BLACK, "#181414"); | |
| dyeHexMap.put(DyeColor.BLUE, "#253193"); | |
| dyeHexMap.put(DyeColor.BROWN, "#56331c"); | |
| dyeHexMap.put(DyeColor.CYAN, "#267191"); | |
| dyeHexMap.put(DyeColor.GRAY, "#414141"); | |
| dyeHexMap.put(DyeColor.GREEN, "#364b18"); | |
| dyeHexMap.put(DyeColor.LIGHT_BLUE, "#6387d2"); | |
| dyeHexMap.put(DyeColor.LIME, "#39ba2e"); | |
| dyeHexMap.put(DyeColor.MAGENTA, "#be49c9"); | |
| dyeHexMap.put(DyeColor.ORANGE, "#ea7e35"); | |
| dyeHexMap.put(DyeColor.PINK, "#d98199"); | |
| dyeHexMap.put(DyeColor.PURPLE, "#7e34bf"); | |
| dyeHexMap.put(DyeColor.RED, "#9e2b27"); | |
| dyeHexMap.put(DyeColor.SILVER, "#a0a7a7"); | |
| dyeHexMap.put(DyeColor.WHITE, "#a4a4a4"); | |
| dyeHexMap.put(DyeColor.YELLOW, "#c2b51c"); | |
| } | |
| public static String dyeToHex(DyeColor clr) | |
| { | |
| if (dyeHexMap.containsKey(clr)) | |
| return dyeHexMap.get(clr); | |
| return "#000"; | |
| } | |
| public static Color hexToColor(String hex) | |
| { | |
| // get rid of typical hex color cruft | |
| if (hex.startsWith("#")) hex = hex.substring(1); | |
| if (hex.indexOf("x") != -1) hex = hex.substring(hex.indexOf("x")); | |
| // if the length isn't the standard 0xRRGGBB or 0xRGB, just quit | |
| if (hex.length() != 6 && hex.length() != 3) return null; | |
| // construct and return color object | |
| int sz = hex.length() / 3, mult = 1 << ((2 - sz)*4), x = 0; | |
| for (int i = 0, z = 0; z < hex.length(); ++i, z += sz) | |
| x |= (mult * Integer.parseInt(hex.substring(z, z+sz), 16)) << (i*8); | |
| return Color.fromBGR(x & 0xffffff); | |
| } | |
| public static Color rgbToColor(String rgb) | |
| { | |
| String parts[] = rgb.split("[^0-9]+"); | |
| if (parts.length < 3) return null; | |
| int x = 0, i; for (i = 0; i < 3; ++i) | |
| x |= Integer.parseInt(parts[i]) << (i*8); | |
| return Color.fromBGR(x & 0xffffff); | |
| } | |
| public static String generateColorTable() | |
| { | |
| StringBuilder str = new StringBuilder(); | |
| str.append("<table><tr><td>Chat Color</td><td>Color</td></tr>"); | |
| for (Map.Entry<ChatColor, String> e : chatHexMap.entrySet()) | |
| str.append(String.format("<tr><td style='color: %2$s;'>%1$s</td>" + | |
| "<td style='color: %2$s;'>Test String</td></tr>", e.getKey().name(), e.getValue())); | |
| str.append("</table>"); | |
| str.append("<table><tr><td>Dye Color</td><td>Color</td></tr>"); | |
| for (Map.Entry<DyeColor, String> e : dyeHexMap.entrySet()) | |
| str.append(String.format("<tr><td style='color: %2$s;'>%1$s</td>" + | |
| "<td style='color: %2$s;'>Test String</td></tr>", e.getKey().name(), e.getValue())); | |
| str.append("</table>"); | |
| return str.toString(); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //hex codes as listed here: http://www.planetminecraft.com/blog/minecraft-color-codes-2906205/Feel | |
| //I did an image search okay pls no judge | |
| private int colorConverter(ChatColor color) | |
| { | |
| if (color == null) | |
| color = ChatColor.WHITE; | |
| switch (color) | |
| { | |
| case BLACK: | |
| return 0; | |
| case DARK_BLUE: | |
| return 170; | |
| case DARK_GREEN: | |
| return 43520; | |
| case DARK_AQUA: | |
| return 43690; | |
| case DARK_RED: | |
| return 11141120; | |
| case DARK_PURPLE: | |
| return 11141290; | |
| case GOLD: | |
| return 16755200; | |
| case GRAY: | |
| return 11184810; | |
| case DARK_GRAY: | |
| return 5592405; | |
| case BLUE: | |
| return 5592575; | |
| case GREEN: | |
| return 5635925; | |
| case AQUA: | |
| return 5636095; | |
| case RED: | |
| return 16733525; | |
| case LIGHT_PURPLE: | |
| return 16733695; | |
| case YELLOW: | |
| return 16777045; | |
| case WHITE: | |
| return 166777215; | |
| default: | |
| return 0; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment