diff options
| author | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-07-08 16:10:08 +0200 |
|---|---|---|
| committer | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-12-12 18:19:05 +0100 |
| commit | 05b1fc7544dda757f9d20b7d87664f6ab0a432ef (patch) | |
| tree | 9d08b22f3d47b51baa3fb3609fe06e72087e10f6 /src/main/java | |
| parent | e518d2217766e32100653c502bd95aab073d8090 (diff) | |
| download | Skyblocker-05b1fc7544dda757f9d20b7d87664f6ab0a432ef.tar.gz Skyblocker-05b1fc7544dda757f9d20b7d87664f6ab0a432ef.tar.bz2 Skyblocker-05b1fc7544dda757f9d20b7d87664f6ab0a432ef.zip | |
fix commission labels being gone lol
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java | 2 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java | 19 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java index 7832c95d..f051bbda 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java @@ -34,7 +34,7 @@ public class CommissionLabels { * @param newCommissions the new commissions to get the waypoints from * @param completed if there is a commission completed */ - protected static void update(List<String> newCommissions, boolean completed) { + public static void update(List<String> newCommissions, boolean completed) { MiningConfig.CommissionWaypointMode currentMode = SkyblockerConfigManager.get().mining.commissionWaypoints.mode; if (currentMode == MiningConfig.CommissionWaypointMode.OFF) { return; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java index 04babee7..3982d122 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java @@ -1,12 +1,13 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import de.hysky.skyblocker.skyblock.dwarven.CommissionLabels; import de.hysky.skyblocker.skyblock.tabhud.util.Colors; import de.hysky.skyblocker.skyblock.tabhud.util.Ico; -import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; import de.hysky.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; import de.hysky.skyblocker.skyblock.tabhud.widget.component.ProgressComponent; import net.minecraft.text.MutableText; @@ -26,6 +27,9 @@ public class CommsWidget extends TabHudWidget { // group 2: comm progress (without "%" for comms that show a percentage) private static final Pattern COMM_PATTERN = Pattern.compile("(?<name>.*): (?<progress>.*)%?"); + private final List<Commission> commissions = new ArrayList<>(4); + private boolean oldDone = false; + public CommsWidget() { super("Commissions", TITLE, Formatting.DARK_AQUA.getColorValue()); } @@ -36,6 +40,10 @@ public class CommsWidget extends TabHudWidget { this.addComponent(new IcoTextComponent()); return; } + List<String> oldCommissionNames = commissions.stream().map(Commission::name).toList(); + List<String> newCommissionsNames = new ArrayList<>(commissions.size()); + commissions.clear(); + boolean commissionDone = false; for (Text line : lines) { Matcher m = COMM_PATTERN.matcher(line.getString()); if (m.matches()) { @@ -43,9 +51,12 @@ public class CommsWidget extends TabHudWidget { String name = m.group("name"); String progress = m.group("progress"); + commissions.add(new Commission(name, progress)); + newCommissionsNames.add(name); if (progress.equals("DONE")) { pc = new ProgressComponent(Ico.BOOK, Text.of(name), Text.of(progress), 100f, Colors.pcntToCol(100)); + commissionDone = true; } else { float pcnt = Float.parseFloat(progress.substring(0, progress.length() - 1)); pc = new ProgressComponent(Ico.BOOK, Text.of(name), pcnt, Colors.pcntToCol(pcnt)); @@ -53,6 +64,12 @@ public class CommsWidget extends TabHudWidget { this.addComponent(pc); } } + if (!oldCommissionNames.equals(newCommissionsNames) || oldDone != commissionDone) { + CommissionLabels.update(newCommissionsNames, commissionDone); + } + oldDone = commissionDone; } + record Commission(String name, String progress){} + } |
