From 6b546ee4c42c843edc9b3b2fe3c918938969d3ae Mon Sep 17 00:00:00 2001 From: Pepich Date: Thu, 11 May 2017 15:58:19 +0200 Subject: [PATCH] Made spyBroadcast a static function, added option for String target --- .../redstoner/modules/message/Message.java | 53 +++++++++++++++++-- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/src/com/redstoner/modules/message/Message.java b/src/com/redstoner/modules/message/Message.java index 937d1c4..c77a6a9 100644 --- a/src/com/redstoner/modules/message/Message.java +++ b/src/com/redstoner/modules/message/Message.java @@ -18,7 +18,7 @@ import com.redstoner.modules.datamanager.DataManager; import net.md_5.bungee.api.ChatColor; -@Version(major = 3, minor = 1, revision = 2, compatible = 3) +@Version(major = 3, minor = 1, revision = 4, compatible = 3) public class Message implements Module { HashMap replyTargets = new HashMap(); @@ -167,12 +167,12 @@ public class Message implements Module return true; } - public void spyBroadcast(CommandSender sender, CommandSender target, String message, String command) + public static void spyBroadcast(CommandSender sender, CommandSender target, String message, String command) { for (Player p : Bukkit.getOnlinePlayers()) { if ((boolean) DataManager.getOrDefault(p, "enabled", false)) - if (sender.hasPermission("utils.socialspy")) + if (p.hasPermission("utils.socialspy")) { if (p.equals(sender) || p.equals(target)) continue; @@ -183,8 +183,24 @@ public class Message implements Module } } - private String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, String message, - String command) + public static void spyBroadcast(CommandSender sender, String target, String message, String command) + { + for (Player p : Bukkit.getOnlinePlayers()) + { + if ((boolean) DataManager.getOrDefault(p, "enabled", false)) + if (p.hasPermission("utils.socialspy")) + { + if (p.equals(sender) || p.equals(target)) + continue; + Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command)); + } + else + DataManager.setData(sender, "enabled", false); + } + } + + private static String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, + String message, String command) { if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false)) message = ChatColor.stripColor(message); @@ -210,6 +226,33 @@ public class Message implements Module return format; } + private static String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message, + String command) + { + if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false)) + message = ChatColor.stripColor(message); + String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); + // Replace escaped % with placeholder + format = format.replace("%%", "§§"); + // Sender name + format = format.replace("%s", Utils.getName(sender)); + format = format.replace("%S", sender.getName()); + // Target name + format = format.replace("%t", target); + format = format.replace("%T", target); + // Prefix + String prefix = (String) DataManager.getOrDefault(formatHolder, "prefix", getDefaultPrefix()); + format = format.replace("%p", prefix); + // Apply colors to halfway replaced String + format = ChatColor.translateAlternateColorCodes('&', format); + // Insert command and message + format = format.replace("%c", command); + format = format.replace("%m", message); + // Convert placeholder back + format = format.replace("§§", "%%"); + return format; + } + private static final String getDefaultFormat() { return "%s &7to %t %p: %m";