From f5ddada892f94e661d1a4b81b99c3379e0231323 Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Tue, 10 Sep 2024 16:01:24 -0400 Subject: [PATCH] support for gradient coloring fixes #72 --- .../java/lol/hyper/toolstats/tools/ItemLore.java | 3 --- .../hyper/toolstats/tools/config/ConfigTools.java | 14 +++++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java index b1d92c6..6727cef 100644 --- a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java +++ b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java @@ -24,13 +24,10 @@ import org.bukkit.persistence.PersistentDataType; import java.util.ArrayList; import java.util.List; -import java.util.regex.Pattern; public class ItemLore { private final ToolStats toolStats; - public static final Pattern COLOR_CODES = Pattern.compile("[&§]([0-9a-fk-or])"); - public static final Pattern HEX_PATTERN = Pattern.compile("[&§]#([A-Fa-f0-9]{6})"); public ItemLore(ToolStats toolStats) { this.toolStats = toolStats; diff --git a/src/main/java/lol/hyper/toolstats/tools/config/ConfigTools.java b/src/main/java/lol/hyper/toolstats/tools/config/ConfigTools.java index e818709..16099f1 100644 --- a/src/main/java/lol/hyper/toolstats/tools/config/ConfigTools.java +++ b/src/main/java/lol/hyper/toolstats/tools/config/ConfigTools.java @@ -18,15 +18,18 @@ package lol.hyper.toolstats.tools.config; import lol.hyper.toolstats.ToolStats; -import lol.hyper.toolstats.tools.ItemLore; import org.bukkit.ChatColor; import org.bukkit.Material; import java.util.regex.Matcher; +import java.util.regex.Pattern; public class ConfigTools { private final ToolStats toolStats; + public static final Pattern COLOR_CODES = Pattern.compile("[&§]([0-9a-fk-or])"); + public static final Pattern CONFIG_HEX_PATTERN = Pattern.compile("[&§]#([A-Fa-f0-9]{6})"); + public static final Pattern MINECRAFT_HEX_PATTERN = Pattern.compile("§x(?:§[a-fA-F0-9]){6}|§[a-fA-F0-9]"); public ConfigTools(ToolStats toolStats) { this.toolStats = toolStats; @@ -123,13 +126,13 @@ public class ConfigTools { // set the placeholder to the value lore = lore.replace(placeHolder, String.valueOf(value)); - Matcher hexMatcher = ItemLore.HEX_PATTERN.matcher(lore); + Matcher hexMatcher = CONFIG_HEX_PATTERN.matcher(lore); while (hexMatcher.find()) { String hexCode = hexMatcher.group(1); lore = lore.replaceAll(hexMatcher.group(), net.md_5.bungee.api.ChatColor.of("#" + hexCode).toString()); } - Matcher colorMatcher = ItemLore.COLOR_CODES.matcher(lore); + Matcher colorMatcher = COLOR_CODES.matcher(lore); while (colorMatcher.find()) { String colorCode = colorMatcher.group(1); lore = lore.replaceAll("&" + colorCode, ChatColor.getByChar(colorCode).toString()); @@ -145,8 +148,9 @@ public class ConfigTools { * @return The message without color codes. */ public String removeColor(String message) { - message = ItemLore.COLOR_CODES.matcher(message).replaceAll(""); - message = ItemLore.HEX_PATTERN.matcher(message).replaceAll(""); + message = MINECRAFT_HEX_PATTERN.matcher(message).replaceAll(""); + message = COLOR_CODES.matcher(message).replaceAll(""); + message = CONFIG_HEX_PATTERN.matcher(message).replaceAll(""); return message; } }