From 7918e6358dcfffbe7368e4c3664628a3b3d95ca7 Mon Sep 17 00:00:00 2001 From: Pepich Date: Wed, 21 Mar 2018 22:16:11 +0100 Subject: [PATCH] Allows console to use socialspy, fixed stripcolor (again) --- .../redstoner/modules/socialspy/Socialspy.cmd | 9 ++- .../modules/socialspy/Socialspy.java | 70 +++++++++++++------ 2 files changed, 55 insertions(+), 24 deletions(-) diff --git a/src/com/redstoner/modules/socialspy/Socialspy.cmd b/src/com/redstoner/modules/socialspy/Socialspy.cmd index f69aa19..acb490c 100644 --- a/src/com/redstoner/modules/socialspy/Socialspy.cmd +++ b/src/com/redstoner/modules/socialspy/Socialspy.cmd @@ -1,5 +1,9 @@ command socialspy { format { + run format_show; + help Displays your current format; + } + format --default { run config_format_default; help Resets your format back to the default: &e%s; } @@ -45,17 +49,20 @@ command socialspy { } on { run on; + type player; } off { run off; + type player; } [empty] { run toggle; + type player; } perm utils.socialspy; - type player; migrate { run migrate; type console; } + type all; } \ No newline at end of file diff --git a/src/com/redstoner/modules/socialspy/Socialspy.java b/src/com/redstoner/modules/socialspy/Socialspy.java index 8faa82c..34daa45 100644 --- a/src/com/redstoner/modules/socialspy/Socialspy.java +++ b/src/com/redstoner/modules/socialspy/Socialspy.java @@ -25,7 +25,7 @@ import com.redstoner.modules.datamanager.DataManager; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 1, compatible = 4) +@Version(major = 4, minor = 0, revision = 2, compatible = 4) public class Socialspy implements CoreModule { @Command(hook = "config_prefix_default") @@ -48,6 +48,14 @@ public class Socialspy implements CoreModule return configFormat(sender, getDefaultFormat()); } + @Command(hook = "config_format_show") + public boolean configFormatShow(CommandSender sender, String format) + { + DataManager.getOrDefault(sender, "format", getDefaultFormat()); + getLogger().message(sender, "Your current format is: " + format.replaceAll("[&§]", "&&")); + return true; + } + @Command(hook = "config_format") public boolean configFormat(CommandSender sender, String format) { @@ -209,6 +217,13 @@ public class Socialspy implements CoreModule else DataManager.setData(sender, "enabled", false); } + if (((JSONArray) DataManager.getOrDefault(Bukkit.getConsoleSender(), "commands", getDefaultCommandList())) + .contains(command)) + { + Message m = new Message(Bukkit.getConsoleSender(), null); + m.appendText(formatMessage(Bukkit.getConsoleSender(), sender, target, message, command)); + m.send(); + } } public static void spyBroadcast(CommandSender sender, String target, String message, String command, @@ -246,26 +261,18 @@ public class Socialspy implements CoreModule else DataManager.setData(sender, "enabled", false); } + if (((JSONArray) DataManager.getOrDefault(Bukkit.getConsoleSender(), "commands", getDefaultCommandList())) + .contains(command)) + { + Message m = new Message(Bukkit.getConsoleSender(), null); + m.appendText(formatMessage(Bukkit.getConsoleSender(), sender, target, message, command)); + m.send(); + } } private String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, String message, String command) { - Object o = DataManager.getOrDefault(formatHolder, "stripcolor", "off"); - if (o instanceof Boolean) - { - boolean b = (boolean) o; - if (b) - o = "on"; - else - o = "off"; - DataManager.setData(formatHolder, "stripcolor", o); - } - String s = (String) o; - if (s.equals("on")) - message = ChatColor.stripColor(message); - else if (s.equals("partial")) - message = message.replace("§", "&&"); String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); // Replace escaped % with placeholder format = format.replace("%%", "§§"); @@ -285,12 +292,7 @@ public class Socialspy implements CoreModule format = format.replace("%m", message); // Convert placeholder back format = format.replace("§§", "%"); - return format; - } - - private String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message, - String command) - { + // Color stripping Object o = DataManager.getOrDefault(formatHolder, "stripcolor", "off"); if (o instanceof Boolean) { @@ -305,7 +307,13 @@ public class Socialspy implements CoreModule if (s.equals("on")) message = ChatColor.stripColor(message); else if (s.equals("partial")) - message = message.replace("§", "&&"); + message = message.replaceAll("[§&]", "&&"); + return format; + } + + private String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message, + String command) + { String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); // Replace escaped % with placeholder format = format.replace("%%", "§§"); @@ -325,6 +333,22 @@ public class Socialspy implements CoreModule format = format.replace("%m", message); // Convert placeholder back format = format.replace("§§", "%"); + // Color stripping + Object o = DataManager.getOrDefault(formatHolder, "stripcolor", "off"); + if (o instanceof Boolean) + { + boolean b = (boolean) o; + if (b) + o = "on"; + else + o = "off"; + DataManager.setData(formatHolder, "stripcolor", o); + } + String s = (String) o; + if (s.equals("on")) + message = ChatColor.stripColor(message); + else if (s.equals("partial")) + message = message.replaceAll("[§&]", "&&"); return format; }