From 643ca3e4c149fa91be782ef36391f3492d404d3b Mon Sep 17 00:00:00 2001 From: syeyoung <42869671+cyoung06@users.noreply.github.com> Date: Sat, 21 Nov 2020 22:59:02 +0900 Subject: Methods for Identifying Skyblock Status --- .../dungeonsguide/utils/SkyblockIdentifier.java | 9 --- .../kr/syeyoung/dungeonsguide/utils/TextUtils.java | 81 ++++++++++++++++++++++ 2 files changed, 81 insertions(+), 9 deletions(-) delete mode 100644 src/main/java/kr/syeyoung/dungeonsguide/utils/SkyblockIdentifier.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/utils/TextUtils.java (limited to 'src/main/java/kr/syeyoung/dungeonsguide/utils') diff --git a/src/main/java/kr/syeyoung/dungeonsguide/utils/SkyblockIdentifier.java b/src/main/java/kr/syeyoung/dungeonsguide/utils/SkyblockIdentifier.java deleted file mode 100644 index 87425f7d..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/utils/SkyblockIdentifier.java +++ /dev/null @@ -1,9 +0,0 @@ -package kr.syeyoung.dungeonsguide.utils; - -import net.minecraft.client.Minecraft; - -public class SkyblockIdentifier { - public static boolean isInSkyblock() { - return true; - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/utils/TextUtils.java b/src/main/java/kr/syeyoung/dungeonsguide/utils/TextUtils.java new file mode 100644 index 00000000..1cfb156c --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/utils/TextUtils.java @@ -0,0 +1,81 @@ +package kr.syeyoung.dungeonsguide.utils; + +import java.text.DecimalFormat; +import java.util.regex.Pattern; + +public class TextUtils { + private static final Pattern STRIP_COLOR_PATTERN = Pattern.compile("(?i)ยง[0-9A-FK-OR]"); + + private static final Pattern NUMBERS_SLASHES = Pattern.compile("[^0-9 /]"); + + private static final Pattern SCOREBOARD_CHARACTERS = Pattern.compile("[^a-z A-Z:0-9/'.]"); + + private static final Pattern FLOAT_CHARACTERS = Pattern.compile("[^.0-9\\-]"); + + private static final Pattern INTEGER_CHARACTERS = Pattern.compile("[^0-9]"); + + private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#,###.##"); + + public static String formatDouble(double number) { + return DECIMAL_FORMAT.format(number); + } + + public static String stripColor(String input) { + return STRIP_COLOR_PATTERN.matcher(input).replaceAll(""); + } + + public static String keepScoreboardCharacters(String text) { + return SCOREBOARD_CHARACTERS.matcher(text).replaceAll(""); + } + + public static String keepFloatCharactersOnly(String text) { + return FLOAT_CHARACTERS.matcher(text).replaceAll(""); + } + + public static String keepIntegerCharactersOnly(String text) { + return INTEGER_CHARACTERS.matcher(text).replaceAll(""); + } + + public static String getNumbersOnly(String text) { + return NUMBERS_SLASHES.matcher(text).replaceAll(""); + } + + public static String removeDuplicateSpaces(String text) { + return text.replaceAll("\\s+", " "); + } + + public static String reverseText(String originalText) { + StringBuilder newString = new StringBuilder(); + String[] parts = originalText.split(" "); + for (int i = parts.length; i > 0; i--) { + String textPart = parts[i - 1]; + boolean foundCharacter = false; + for (char letter : textPart.toCharArray()) { + if (letter > ')') { + foundCharacter = true; + newString.append((new StringBuilder(textPart)).reverse().toString()); + break; + } + } + newString.append(" "); + if (!foundCharacter) + newString.insert(0, textPart); + newString.insert(0, " "); + } + return removeDuplicateSpaces(newString.toString().trim()); +} + + public static String getOrdinalSuffix(int n) { + if (n >= 11 && n <= 13) + return "th"; + switch (n % 10) { + case 1: + return "st"; + case 2: + return "nd"; + case 3: + return "rd"; + } + return "th"; + } +} \ No newline at end of file -- cgit