aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2024-07-08 16:10:08 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-12-12 18:19:05 +0100
commit05b1fc7544dda757f9d20b7d87664f6ab0a432ef (patch)
tree9d08b22f3d47b51baa3fb3609fe06e72087e10f6 /src/main/java
parente518d2217766e32100653c502bd95aab073d8090 (diff)
downloadSkyblocker-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.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java19
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){}
+
}