aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/MiningLocationLabel.java36
3 files changed, 49 insertions, 5 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 353d0e8a..7e577beb 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CommissionLabels.java
@@ -13,6 +13,7 @@ import java.util.stream.Collectors;
public class CommissionLabels {
private static final Map<String, MiningLocationLabel.dwarvenCategory> DWARVEN_LOCATIONS = Arrays.stream(MiningLocationLabel.dwarvenCategory.values()).collect(Collectors.toMap(MiningLocationLabel.dwarvenCategory::toString, Function.identity()));
+ private static final List<MiningLocationLabel.dwarvenEmissaries> DWARVEN_EMISSARYS = Arrays.stream(MiningLocationLabel.dwarvenEmissaries.values()).toList();
private static final Map<String, MiningLocationLabel.glaciteCategory> GLACITE_LOCATIONS = Arrays.stream(MiningLocationLabel.glaciteCategory.values()).collect(Collectors.toMap(MiningLocationLabel.glaciteCategory::toString, Function.identity()));
protected static List<MiningLocationLabel> activeWaypoints = new ArrayList<>();
@@ -24,8 +25,9 @@ public class CommissionLabels {
/**
* update the activeWaypoints when there is a change in commissions
* @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) {
+ protected static void update(List<String> newCommissions, boolean completed) {
if (!SkyblockerConfigManager.get().locations.dwarvenMines.commissionWaypoints.enabled) {
return;
}
@@ -59,6 +61,12 @@ public class CommissionLabels {
}
}
}
+ //if there is a commission completed and enabled show emissary
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.commissionWaypoints.showEmissary && completed) {
+ for (MiningLocationLabel.dwarvenEmissaries emissaries : DWARVEN_EMISSARYS) {
+ activeWaypoints.add(new MiningLocationLabel(emissaries, emissaries.getLocation()));
+ }
+ }
}
/**
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
index 0ae50253..e77e5463 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -168,10 +168,9 @@ public class DwarvenHud {
|| !Utils.isInCrystalHollows() && !Utils.isInDwarvenMines()) {
return;
}
-
List<String> oldCommissionNames = commissionList.stream().map(Commission::commission).toList();
+ boolean oldCompleted = commissionList.stream().anyMatch(commission -> commission.progression.equals("DONE"));
commissionList = new ArrayList<>();
-
for (PlayerListEntry playerListEntry : CLIENT.getNetworkHandler().getPlayerList().stream().sorted(PlayerListHudAccessor.getOrdering()).toList()) {
if (playerListEntry.getDisplayName() == null) {
continue;
@@ -199,8 +198,9 @@ public class DwarvenHud {
}
}
List<String> newCommissionNames = commissionList.stream().map(Commission::commission).toList();
- if (!oldCommissionNames.equals(newCommissionNames)) {
- CommissionLabels.update(newCommissionNames);
+ boolean newCompleted = commissionList.stream().anyMatch(commission -> commission.progression.equals("DONE"));
+ if (!oldCommissionNames.equals(newCommissionNames) || oldCompleted != newCompleted) {
+ CommissionLabels.update(newCommissionNames, newCompleted);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MiningLocationLabel.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MiningLocationLabel.java
index ee82773c..356e2214 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MiningLocationLabel.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MiningLocationLabel.java
@@ -84,6 +84,42 @@ public class MiningLocationLabel {
}
}
+ enum dwarvenEmissaries implements Category {
+ LAVA_SPRINGS(new BlockPos(58, 198, -8)),
+ CLIFFSIDE_VEINS(new BlockPos(42, 134, 22)),
+ RAMPARTS_QUARRY(new BlockPos(-72, 153, -10)),
+ UPPER_MINES(new BlockPos(-132, 174, -50)),
+ ROYAL_MINES(new BlockPos(171, 150, 31)),
+ DWARVEN_VILLAGE( new BlockPos(-37, 200, -92)),
+ DWARVEN_MINES( new BlockPos(89, 198, -92));
+
+ private final BlockPos location;
+
+ dwarvenEmissaries( BlockPos location) {
+
+ this.location = location;
+ }
+
+ public BlockPos getLocation() {
+ return location;
+ }
+
+ @Override
+ public String toString() {
+ return "Emissary";
+ }
+
+ @Override
+ public String getName() {
+ return "Emissary";
+ }
+
+ @Override
+ public int getColor() {
+ return 0xffffff;
+ }
+ }
+
enum glaciteCategory implements Category {
AQUAMARINE("Aquamarine", 0x334cb1, new BlockPos[]{new BlockPos(-1, 139, 437), new BlockPos(90, 151, 229), new BlockPos(56, 151, 400), new BlockPos(51, 117, 303)}),
ONYX("Onyx", 0x191919, new BlockPos[]{new BlockPos(79, 119, 411), new BlockPos(-14, 132, 386), new BlockPos(18, 136, 370), new BlockPos(16, 138, 411), new BlockPos(-68, 130, 408)}),