diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-05-14 16:03:56 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-05-14 16:03:56 -0400 |
commit | 743761c3f1592e90ec4412871b0305cb781de1ff (patch) | |
tree | 4bb17782686505eab18498969172eac3c855167b /src/main/java | |
parent | e0d734b4620e110ef0a3ccdf5ee9a7568b4baaef (diff) | |
download | Skyblocker-743761c3f1592e90ec4412871b0305cb781de1ff.tar.gz Skyblocker-743761c3f1592e90ec4412871b0305cb781de1ff.tar.bz2 Skyblocker-743761c3f1592e90ec4412871b0305cb781de1ff.zip |
Add support for ring of love ability
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java index 6105d7c9..5c1ee15e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java @@ -14,14 +14,15 @@ import java.util.regex.Pattern; public class CompactDamage { - private static final Pattern DAMAGE_PATTERN = Pattern.compile("✧?[\\d,]+✧?"); + private static final Pattern DAMAGE_PATTERN = Pattern.compile("✧?[\\d,]+✧?❤?"); private CompactDamage() { } public static void compactDamage(ArmorStandEntity entity) { if (!entity.isInvisible() || !entity.hasCustomName() || !entity.isCustomNameVisible()) return; Text customName = entity.getCustomName(); - if (!DAMAGE_PATTERN.matcher(customName.getString()).matches()) return; + String customNameStringified = customName.getString(); + if (!DAMAGE_PATTERN.matcher(customNameStringified).matches()) return; List<Text> siblings = customName.getSiblings(); if (siblings.isEmpty()) return; @@ -39,7 +40,10 @@ public class CompactDamage { } else color = SkyblockerConfigManager.get().uiAndVisuals.compactDamage.normalDamageColor.getRGB() & 0x00FFFFFF; prettierCustomName = Text.literal("").append(Text.literal(prettifiedDmg).setStyle(customName.getStyle()).withColor(color)); } else { //Crit damage - String dmg = siblings.subList(1, siblings.size() - 1) //First and last sibling are the crit symbols + boolean wasDoubled = customNameStringified.contains("❤"); + int entriesToRemove = wasDoubled ? 2 : 1; + + String dmg = siblings.subList(1, siblings.size() - entriesToRemove) //First and last sibling are the crit symbols and maybe heart .stream() .map(Text::getString) .reduce("", String::concat) //Concatenate all the siblings to get the dmg number @@ -58,6 +62,9 @@ public class CompactDamage { ) )); } + + if (wasDoubled) prettierCustomName.append(Text.literal("❤").formatted(Formatting.LIGHT_PURPLE)); + prettierCustomName.setStyle(customName.getStyle()); } |