package org.bukkit.craftbukkit.command; import org.bukkit.Bukkit; import org.bukkit.command.ConsoleCommandSender; public class ColouredConsoleSender extends CraftConsoleCommandSender { // private final Terminal terminal; // private final Map<ChatColor, String> replacements = new EnumMap<ChatColor, String>(ChatColor.class); // private final ChatColor[] colors = ChatColor.values(); public ColouredConsoleSender() { super(); // this.terminal = ((CraftServer) getServer()).getReader().getTerminal(); // // replacements.put(ChatColor.BLACK, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLACK).boldOff().toString()); // replacements.put(ChatColor.DARK_BLUE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLUE).boldOff().toString()); // replacements.put(ChatColor.DARK_GREEN, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.GREEN).boldOff().toString()); // replacements.put(ChatColor.DARK_AQUA, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.CYAN).boldOff().toString()); // replacements.put(ChatColor.DARK_RED, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.RED).boldOff().toString()); // replacements.put(ChatColor.DARK_PURPLE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.MAGENTA).boldOff().toString()); // replacements.put(ChatColor.GOLD, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.YELLOW).boldOff().toString()); // replacements.put(ChatColor.GRAY, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.WHITE).boldOff().toString()); // replacements.put(ChatColor.DARK_GRAY, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLACK).bold().toString()); // replacements.put(ChatColor.BLUE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLUE).bold().toString()); // replacements.put(ChatColor.GREEN, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.GREEN).bold().toString()); // replacements.put(ChatColor.AQUA, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.CYAN).bold().toString()); // replacements.put(ChatColor.RED, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.RED).bold().toString()); // replacements.put(ChatColor.LIGHT_PURPLE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.MAGENTA).bold().toString()); // replacements.put(ChatColor.YELLOW, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.YELLOW).bold().toString()); // replacements.put(ChatColor.WHITE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.WHITE).bold().toString()); // replacements.put(ChatColor.MAGIC, Ansi.ansi().a(Attribute.BLINK_SLOW).toString()); // replacements.put(ChatColor.BOLD, Ansi.ansi().a(Attribute.UNDERLINE_DOUBLE).toString()); // replacements.put(ChatColor.STRIKETHROUGH, Ansi.ansi().a(Attribute.STRIKETHROUGH_ON).toString()); // replacements.put(ChatColor.UNDERLINE, Ansi.ansi().a(Attribute.UNDERLINE).toString()); // replacements.put(ChatColor.ITALIC, Ansi.ansi().a(Attribute.ITALIC).toString()); // replacements.put(ChatColor.RESET, Ansi.ansi().a(Attribute.RESET).toString()); } @Override public void sendMessage(String message) { // if (terminal.isAnsiSupported()) { // if (!conversationTracker.isConversingModaly()) { // String result = message; // for (ChatColor color : colors) { // if (replacements.containsKey(color)) { // result = result.replaceAll("(?i)" + color.toString(), replacements.get(color)); // } else { // result = result.replaceAll("(?i)" + color.toString(), ""); // } // } // System.out.println(result + Ansi.ansi().reset().toString()); // } // } else { // super.sendMessage(message); // } super.sendMessage(message); } public static ConsoleCommandSender getInstance() { if(Bukkit.getConsoleSender() != null) { return Bukkit.getConsoleSender(); } else { return new ColouredConsoleSender(); } } }