/src/core/net/citizensnpcs/utils/Messaging.java

https://github.com/bentech/Citizens · Java · 109 lines · 92 code · 17 blank · 0 comment · 12 complexity · e864ff0116a8f4ddbe01d44f0b1c836c MD5 · raw file

  1. package net.citizensnpcs.utils;
  2. import java.util.logging.Level;
  3. import java.util.logging.Logger;
  4. import net.citizensnpcs.SettingsManager;
  5. import net.citizensnpcs.resources.npclib.HumanNPC;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.command.CommandSender;
  9. import org.bukkit.entity.Player;
  10. import com.google.common.base.Splitter;
  11. public class Messaging {
  12. private static final Logger log = Logger.getLogger("Minecraft");
  13. private final static String[] colours = { "black", "dblue", "dgreen",
  14. "daqua", "dred", "dpurple", "gold", "gray", "dgray", "blue",
  15. "green", "aqua", "red", "lpurple", "yellow", "white" };
  16. public static void send(CommandSender sender, String message) {
  17. send(sender, null, message);
  18. }
  19. public static void send(CommandSender sender, HumanNPC npc, String messages) {
  20. for (String message : Splitter.on("<br>").omitEmptyStrings()
  21. .split(messages)) {
  22. if (sender instanceof Player) {
  23. Player player = ((Player) sender);
  24. message = message.replace("<h>", "" + player.getHealth());
  25. message = message.replace("<name>", player.getName());
  26. message = message.replace("<world>", player.getWorld()
  27. .getName());
  28. }
  29. message = colourise(StringUtils.colourise(message));
  30. if (npc != null) {
  31. message = message.replace("<npc>", npc.getStrippedName());
  32. message = message.replace("<npcid>", "" + npc.getUID());
  33. }
  34. sender.sendMessage(message);
  35. }
  36. }
  37. public static void log(Object... messages) {
  38. StringBuilder builder = new StringBuilder();
  39. for (Object string : messages) {
  40. builder.append(string == null ? "null " : string.toString() + " ");
  41. }
  42. log(builder.toString(), Level.INFO);
  43. }
  44. public static void log(Object message, Level level) {
  45. log.log(level, "[Citizens] " + message);
  46. }
  47. public static void log(Object message) {
  48. log(message, Level.INFO);
  49. }
  50. public static void debug(Object message) {
  51. if (SettingsManager.getBoolean("DebugMode")) {
  52. log(message);
  53. }
  54. }
  55. public static void debug(Object... messages) {
  56. if (SettingsManager.getBoolean("DebugMode")) {
  57. log(messages);
  58. }
  59. }
  60. public static void sendError(Player player, String error) {
  61. send(player, null, ChatColor.RED + error);
  62. }
  63. public static void sendError(CommandSender sender, String error) {
  64. send(sender, null, ChatColor.RED + error);
  65. }
  66. public static void sendUncertain(String name, String message) {
  67. Player player = Bukkit.getServer().getPlayer(name);
  68. if (player != null) {
  69. send(player, null, message);
  70. }
  71. }
  72. private static String colourise(String message) {
  73. String format = "<%s>";
  74. byte index = 0;
  75. for (String colour : colours) {
  76. message = message.replaceAll(String.format(format, colour), ""
  77. + ChatColor.getByCode(index));
  78. ++index;
  79. }
  80. for (int colour = 0; colour < 16; ++colour) {
  81. message = message.replaceAll(String.format(format, colour), ""
  82. + ChatColor.getByCode(colour));
  83. }
  84. message = message.replaceAll("<g>", "" + ChatColor.GREEN);
  85. message = message.replaceAll("<y>", "" + ChatColor.YELLOW);
  86. return message;
  87. }
  88. public static void dualSend(Player player, Object... string) {
  89. log(string);
  90. send(player, StringUtils.join(string));
  91. }
  92. }