aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/util')
-rw-r--r--src/main/java/de/cowtipper/cowlection/util/Utils.java24
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);
}
}