diff options
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/util')
| -rw-r--r-- | src/main/java/de/cowtipper/cowlection/util/Utils.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/util/Utils.java b/src/main/java/de/cowtipper/cowlection/util/Utils.java index f15b095..4b5c73c 100644 --- a/src/main/java/de/cowtipper/cowlection/util/Utils.java +++ b/src/main/java/de/cowtipper/cowlection/util/Utils.java @@ -347,18 +347,22 @@ public final class Utils { } } } - // remove essence upgrade indicators (✪) - String essenceUpgradeIndicator = EnumChatFormatting.GOLD + "✪"; - int essenceModifier = modifiedItemName.indexOf(essenceUpgradeIndicator); - while (essenceModifier > 0) { - if (strikethrough) { - modifiedItemName.replace(essenceModifier, essenceModifier + essenceUpgradeIndicator.length(), grayedOutFormatting + "✪"); + // remove or 'hide' essence upgrade indicators (✪) + replaceInStringBuilder(modifiedItemName, EnumChatFormatting.GOLD + "✪", grayedOutFormatting + "✪", strikethrough); + replaceInStringBuilder(modifiedItemName, EnumChatFormatting.RED + "✪", "" + EnumChatFormatting.DARK_GRAY + EnumChatFormatting.STRIKETHROUGH + "✪", strikethrough); + + return Pair.of(modifiedItemName.toString().trim(), reforge); + } + + private static void replaceInStringBuilder(StringBuilder sb, String search, String replacement, boolean replace) { + int hit = sb.indexOf(search); + while (hit > 0) { + if (replace) { + sb.replace(hit, hit + search.length(), replacement); } else { - modifiedItemName.delete(essenceModifier, essenceModifier + essenceUpgradeIndicator.length()); + sb.delete(hit, hit + search.length()); } - essenceModifier = modifiedItemName.indexOf(essenceUpgradeIndicator); + hit = sb.indexOf(search); } - - return Pair.of(modifiedItemName.toString().trim(), reforge); } } |
