aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2025-02-15 05:12:42 +0300
committerGitHub <noreply@github.com>2025-02-15 10:12:42 +0800
commitfa1590805039f6cce593bb36153c577d8a32d443 (patch)
treee418a7e58e50cdc05ed0272971224e22bcb559db /src
parent285085d01f1fa5ffe55d88975f6155a486118aed (diff)
downloadSkyblocker-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.java24
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));
+ }
}
}
}