From 11b3deb5fc0d25659ebc8fc18ce302fe05f774b3 Mon Sep 17 00:00:00 2001 From: Ayham Al-Ali Date: Fri, 25 Feb 2022 20:12:40 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9A=92=EF=B8=8F=20Replace=20color=20char?= =?UTF-8?q?=20in=20debug=20statements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ch/njol/skript/ScriptLoader.java | 7 ++++--- .../java/ch/njol/skript/command/Commands.java | 11 ++++++----- .../java/ch/njol/skript/lang/TriggerItem.java | 3 ++- .../java/ch/njol/skript/util/SkriptColor.java | 15 ++++++++++++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/ch/njol/skript/ScriptLoader.java b/src/main/java/ch/njol/skript/ScriptLoader.java index b552e7b9531..a0a987b96f7 100644 --- a/src/main/java/ch/njol/skript/ScriptLoader.java +++ b/src/main/java/ch/njol/skript/ScriptLoader.java @@ -57,6 +57,7 @@ import ch.njol.skript.sections.SecLoop; import ch.njol.skript.util.Date; import ch.njol.skript.util.ExceptionUtils; +import ch.njol.skript.util.SkriptColor; import ch.njol.skript.util.Task; import ch.njol.skript.variables.TypeHints; import ch.njol.skript.variables.Variables; @@ -741,7 +742,7 @@ private static ScriptInfo loadScript(@Nullable Config config) { continue; if (Skript.debug() || node.debug()) - Skript.debug(event + " (" + parsedEvent.getSecond().toString(null, true) + "):"); + Skript.debug(SkriptColor.replaceColorChar(event + " (" + parsedEvent.getSecond().toString(null, true) + "):")); Class[] eventClasses = parsedEvent.getSecond().getEventClasses(); if (eventClasses == null) @@ -1115,7 +1116,7 @@ public static ArrayList loadItems(SectionNode node) { continue; if (Skript.debug() || n.debug()) - Skript.debug(getParser().getIndentation() + stmt.toString(null, true)); + Skript.debug(SkriptColor.replaceColorChar(getParser().getIndentation() + stmt.toString(null, true))); items.add(stmt); } else if (n instanceof SectionNode) { @@ -1129,7 +1130,7 @@ public static ArrayList loadItems(SectionNode node) { continue; if (Skript.debug() || n.debug()) - Skript.debug(getParser().getIndentation() + section.toString(null, true)); + Skript.debug(SkriptColor.replaceColorChar(getParser().getIndentation() + section.toString(null, true))); items.add(section); diff --git a/src/main/java/ch/njol/skript/command/Commands.java b/src/main/java/ch/njol/skript/command/Commands.java index 064a88e60ca..6a1cac04bde 100644 --- a/src/main/java/ch/njol/skript/command/Commands.java +++ b/src/main/java/ch/njol/skript/command/Commands.java @@ -33,6 +33,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import ch.njol.skript.util.SkriptColor; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -277,15 +278,15 @@ static boolean handleEffectCommand(final CommandSender sender, String command) { log.clear(); // ignore warnings and stuff log.printLog(); - sender.sendMessage(ChatColor.GRAY + "executing '" + ChatColor.stripColor(command) + "'"); + sender.sendMessage(ChatColor.GRAY + "executing '" + SkriptColor.replaceColorChar(command) + "'"); if (SkriptConfig.logPlayerCommands.value() && !(sender instanceof ConsoleCommandSender)) - Skript.info(sender.getName() + " issued effect command: " + command); + Skript.info(sender.getName() + " issued effect command: " + SkriptColor.replaceColorChar(command)); TriggerItem.walk(e, new EffectCommandEvent(sender, command)); } else { if (sender == Bukkit.getConsoleSender()) // log as SEVERE instead of INFO like printErrors below - SkriptLogger.LOGGER.severe("Error in: " + ChatColor.stripColor(command)); + SkriptLogger.LOGGER.severe("Error in: " + SkriptColor.replaceColorChar(command)); else - sender.sendMessage(ChatColor.RED + "Error in: " + ChatColor.GRAY + ChatColor.stripColor(command)); + sender.sendMessage(ChatColor.RED + "Error in: " + ChatColor.GRAY + SkriptColor.replaceColorChar(command)); log.printErrors(sender, "(No specific information is available)"); } } finally { @@ -293,7 +294,7 @@ static boolean handleEffectCommand(final CommandSender sender, String command) { } return true; } catch (final Exception e) { - Skript.exception(e, "Unexpected error while executing effect command '" + command + "' by '" + sender.getName() + "'"); + Skript.exception(e, "Unexpected error while executing effect command '" + SkriptColor.replaceColorChar(command) + "' by '" + sender.getName() + "'"); sender.sendMessage(ChatColor.RED + "An internal error occurred while executing this effect. Please refer to the server log for details."); return true; } diff --git a/src/main/java/ch/njol/skript/lang/TriggerItem.java b/src/main/java/ch/njol/skript/lang/TriggerItem.java index 997d89aca4e..a3a45289936 100644 --- a/src/main/java/ch/njol/skript/lang/TriggerItem.java +++ b/src/main/java/ch/njol/skript/lang/TriggerItem.java @@ -20,6 +20,7 @@ import java.io.File; +import ch.njol.skript.util.SkriptColor; import org.bukkit.event.Event; import org.eclipse.jdt.annotation.Nullable; @@ -124,7 +125,7 @@ public String getIndentation() { protected final void debug(final Event e, final boolean run) { if (!Skript.debug()) return; - Skript.debug(getIndentation() + (run ? "" : "-") + toString(e, true)); + Skript.debug(SkriptColor.replaceColorChar(getIndentation() + (run ? "" : "-") + toString(e, true))); } @Override diff --git a/src/main/java/ch/njol/skript/util/SkriptColor.java b/src/main/java/ch/njol/skript/util/SkriptColor.java index b1052c445cb..e1dc9713064 100644 --- a/src/main/java/ch/njol/skript/util/SkriptColor.java +++ b/src/main/java/ch/njol/skript/util/SkriptColor.java @@ -25,6 +25,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import org.bukkit.ChatColor; import org.bukkit.DyeColor; @@ -66,6 +67,7 @@ public enum SkriptColor implements Color { private final static Map names = new HashMap<>(); private final static Set colors = new HashSet<>(); private final static String LANGUAGE_NODE = "colors"; + private final static Pattern COLOR_CHAR_PATTERN = Pattern.compile("§"); static { colors.addAll(Arrays.asList(values())); @@ -219,7 +221,18 @@ public static SkriptColor fromWoolData(short data) { } return null; } - + + /** + * Replace chat color character '§' with '&' + * This is an alternative method to {@link ChatColor#stripColor(String)} + * But does not strip the color code. + * @param s string to replace chat color character of. + * @return String with replaced chat color character + */ + public static String replaceColorChar(String s) { + return COLOR_CHAR_PATTERN.matcher(s).replaceAll("&"); + } + @Override public String toString() { return adjective == null ? "" + name() : adjective.toString(-1, 0); From 39d209770344a68017d72194053a0a0a570d5321 Mon Sep 17 00:00:00 2001 From: Ayham Al Ali Date: Wed, 9 Mar 2022 00:07:45 +0300 Subject: [PATCH 2/3] Update src/main/java/ch/njol/skript/util/SkriptColor.java Co-authored-by: TPGamesNL <29547183+TPGamesNL@users.noreply.github.com> --- src/main/java/ch/njol/skript/util/SkriptColor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/util/SkriptColor.java b/src/main/java/ch/njol/skript/util/SkriptColor.java index e1dc9713064..ccafad83f9a 100644 --- a/src/main/java/ch/njol/skript/util/SkriptColor.java +++ b/src/main/java/ch/njol/skript/util/SkriptColor.java @@ -230,7 +230,7 @@ public static SkriptColor fromWoolData(short data) { * @return String with replaced chat color character */ public static String replaceColorChar(String s) { - return COLOR_CHAR_PATTERN.matcher(s).replaceAll("&"); + return s.replace('\u00A7', '&'); } @Override From b3a3fa754e54f9dfa82234427962ea40d506dc26 Mon Sep 17 00:00:00 2001 From: Ayham Al-Ali Date: Wed, 9 Mar 2022 00:08:45 +0300 Subject: [PATCH 3/3] Ready --- src/main/java/ch/njol/skript/util/SkriptColor.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/util/SkriptColor.java b/src/main/java/ch/njol/skript/util/SkriptColor.java index ccafad83f9a..7f3935fa3f5 100644 --- a/src/main/java/ch/njol/skript/util/SkriptColor.java +++ b/src/main/java/ch/njol/skript/util/SkriptColor.java @@ -63,11 +63,10 @@ public enum SkriptColor implements Color { DARK_PURPLE(DyeColor.PURPLE, ChatColor.DARK_PURPLE), LIGHT_PURPLE(DyeColor.MAGENTA, ChatColor.LIGHT_PURPLE); - + private final static Map names = new HashMap<>(); private final static Set colors = new HashSet<>(); private final static String LANGUAGE_NODE = "colors"; - private final static Pattern COLOR_CHAR_PATTERN = Pattern.compile("§"); static { colors.addAll(Arrays.asList(values()));