Skip to content

Commit f5ddada

Browse files
committed
support for gradient coloring
fixes #72
1 parent a43155b commit f5ddada

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/main/java/lol/hyper/toolstats/tools/ItemLore.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@
2424

2525
import java.util.ArrayList;
2626
import java.util.List;
27-
import java.util.regex.Pattern;
2827

2928
public class ItemLore {
3029

3130
private final ToolStats toolStats;
32-
public static final Pattern COLOR_CODES = Pattern.compile("[&§]([0-9a-fk-or])");
33-
public static final Pattern HEX_PATTERN = Pattern.compile("[&§]#([A-Fa-f0-9]{6})");
3431

3532
public ItemLore(ToolStats toolStats) {
3633
this.toolStats = toolStats;

src/main/java/lol/hyper/toolstats/tools/config/ConfigTools.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,18 @@
1818
package lol.hyper.toolstats.tools.config;
1919

2020
import lol.hyper.toolstats.ToolStats;
21-
import lol.hyper.toolstats.tools.ItemLore;
2221
import org.bukkit.ChatColor;
2322
import org.bukkit.Material;
2423

2524
import java.util.regex.Matcher;
25+
import java.util.regex.Pattern;
2626

2727
public class ConfigTools {
2828

2929
private final ToolStats toolStats;
30+
public static final Pattern COLOR_CODES = Pattern.compile("[&§]([0-9a-fk-or])");
31+
public static final Pattern CONFIG_HEX_PATTERN = Pattern.compile("[&§]#([A-Fa-f0-9]{6})");
32+
public static final Pattern MINECRAFT_HEX_PATTERN = Pattern.compile("§x(?:§[a-fA-F0-9]){6}|§[a-fA-F0-9]");
3033

3134
public ConfigTools(ToolStats toolStats) {
3235
this.toolStats = toolStats;
@@ -123,13 +126,13 @@ public String formatLore(String configName, String placeHolder, Object value) {
123126
// set the placeholder to the value
124127
lore = lore.replace(placeHolder, String.valueOf(value));
125128

126-
Matcher hexMatcher = ItemLore.HEX_PATTERN.matcher(lore);
129+
Matcher hexMatcher = CONFIG_HEX_PATTERN.matcher(lore);
127130
while (hexMatcher.find()) {
128131
String hexCode = hexMatcher.group(1);
129132
lore = lore.replaceAll(hexMatcher.group(), net.md_5.bungee.api.ChatColor.of("#" + hexCode).toString());
130133
}
131134

132-
Matcher colorMatcher = ItemLore.COLOR_CODES.matcher(lore);
135+
Matcher colorMatcher = COLOR_CODES.matcher(lore);
133136
while (colorMatcher.find()) {
134137
String colorCode = colorMatcher.group(1);
135138
lore = lore.replaceAll("&" + colorCode, ChatColor.getByChar(colorCode).toString());
@@ -145,8 +148,9 @@ public String formatLore(String configName, String placeHolder, Object value) {
145148
* @return The message without color codes.
146149
*/
147150
public String removeColor(String message) {
148-
message = ItemLore.COLOR_CODES.matcher(message).replaceAll("");
149-
message = ItemLore.HEX_PATTERN.matcher(message).replaceAll("");
151+
message = MINECRAFT_HEX_PATTERN.matcher(message).replaceAll("");
152+
message = COLOR_CODES.matcher(message).replaceAll("");
153+
message = CONFIG_HEX_PATTERN.matcher(message).replaceAll("");
150154
return message;
151155
}
152156
}

0 commit comments

Comments
 (0)