/** * This is my favorite debug routine :) I use it everywhere to print out variable values * * @param s - array of any object that you need to print out. Example: Message.BC ("variable * 1:",var1,"variable 2:",var2) */ public static void BC(Object... s) { if (!debugMode) return; if (s.length == 0) return; StringBuilder sb = new StringBuilder("&3[").append(plugin.getDescription().getName()).append("]&f "); for (Object str : s) sb.append(str.toString()).append(" "); plugin.getServer().broadcastMessage(TextFormat.colorize(sb.toString().trim())); }
/** * Get formated text. * * @param keys * @return */ public String getText(Object... keys) { if (keys.length == 0) return TextFormat.colorize("&" + c1 + this.message); String str = this.message; boolean noColors = false; boolean skipDefaultColors = false; boolean fullFloat = false; String prefix = ""; int count = 1; char[] colors = new char[] {c1, c2}; int c = 0; DecimalFormat fmt = new DecimalFormat("####0.##"); for (int i = 0; i < keys.length; i++) { String s = keys[i].toString(); if (c < 2 && keys[i] instanceof Character) { colors[c] = (Character) keys[i]; c++; continue; } else if (s.startsWith("prefix:")) { prefix = s.replace("prefix:", ""); continue; } else if (s.equals("SKIPCOLOR")) { skipDefaultColors = true; continue; } else if (s.equals("NOCOLORS") || s.equals("NOCOLOR")) { noColors = true; continue; } else if (s.equals("FULLFLOAT")) { fullFloat = true; continue; } else if (keys[i] instanceof Location) { Location loc = (Location) keys[i]; if (fullFloat) s = loc.getLevel().getName() + "[" + loc.getX() + ", " + loc.getY() + ", " + loc.getZ() + "]"; else s = loc.getLevel().getName() + "[" + fmt.format(loc.getX()) + ", " + fmt.format(loc.getY()) + ", " + fmt.format(loc.getZ()) + "]"; } else if (keys[i] instanceof Double || keys[i] instanceof Float) { if (!fullFloat) s = fmt.format((Double) keys[i]); } String from = (new StringBuilder("%").append(count).append("%")).toString(); String to = skipDefaultColors ? s : (new StringBuilder("&").append(colors[1]).append(s).append("&").append(colors[0])) .toString(); str = str.replace(from, to); count++; } str = TextFormat.colorize( prefix.isEmpty() ? "&" + colors[0] + str : prefix + " " + "&" + colors[0] + str); if (noColors) str = TextFormat.clean(str); return str; }