diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2025-02-15 05:12:42 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-15 10:12:42 +0800 |
| commit | fa1590805039f6cce593bb36153c577d8a32d443 (patch) | |
| tree | e418a7e58e50cdc05ed0272971224e22bcb559db /src | |
| parent | 285085d01f1fa5ffe55d88975f6155a486118aed (diff) | |
| download | Skyblocker-fa1590805039f6cce593bb36153c577d8a32d443.tar.gz Skyblocker-fa1590805039f6cce593bb36153c577d8a32d443.tar.bz2 Skyblocker-fa1590805039f6cce593bb36153c577d8a32d443.zip | |
Fix the way jacob's contest widget is parsed and displayed (#1162)
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java index 90b7e6c6..5910b496 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java @@ -12,6 +12,7 @@ import net.minecraft.util.Formatting; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; import java.util.regex.Pattern; import static java.util.Map.entry; @@ -23,8 +24,7 @@ public class JacobsContestWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Jacob's Contest").formatted(Formatting.YELLOW, Formatting.BOLD); - //TODO Properly match the contest placement and display it - private static final Pattern CROP_PATTERN = Pattern.compile("(?<fortune>[☘○]) (?<crop>[A-Za-z ]+).*"); + private static final Pattern CROP_PATTERN = Pattern.compile("(?<fortune>[☘○]) (?<crop>.+?)(?: ◆ )?(?<percentage>Top [\\d.]+%)?"); public static final Map<String, ItemStack> FARM_DATA = Map.ofEntries( entry("Wheat", new ItemStack(Items.WHEAT)), @@ -47,15 +47,19 @@ public class JacobsContestWidget extends TabHudWidget { public void updateContent(List<Text> lines) { for (Text line : lines) { String string = line.getString(); - switch (string.toLowerCase()) { - case String s when s.contains("left") || s.contains("starts") -> this.addComponent(new IcoTextComponent(Ico.CLOCK, line)); - case String s when s.contains("○") -> { - String trim = string.replace("○", "").trim(); - this.addComponent(new IcoTextComponent(FARM_DATA.get(trim), Text.literal(trim))); - } - default -> this.addComponent(new PlainTextComponent(line)); - } + if (string.endsWith("left") || string.contains("Starts")) this.addComponent(new IcoTextComponent(Ico.CLOCK, line)); + else { + Matcher matcher = CROP_PATTERN.matcher(string); + if (matcher.matches()) { + String crop = matcher.group("crop"); + String percentage = matcher.group("percentage"); + MutableText cropText = Text.empty().append(crop); + if (matcher.group("fortune").equals("☘")) cropText.append(Text.literal(" ☘").formatted(Formatting.GOLD)); + this.addComponent(new IcoTextComponent(FARM_DATA.get(crop), cropText)); + if (percentage != null) this.addComponent(new PlainTextComponent(Text.literal(percentage))); + } else this.addComponent(new PlainTextComponent(line)); + } } } } |
