diff options
author | olim <bobq4582@gmail.com> | 2024-05-06 21:50:58 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-05-09 23:00:11 +0100 |
commit | eaac33822516e7bf5be9296f80bb0143ad1ddca2 (patch) | |
tree | dddfee04cf7d776841543165601459a1ed798c71 /src/main/java | |
parent | f3ebd6529dc0a29fa561aa71564f2e20d3568dcb (diff) | |
download | Skyblocker-eaac33822516e7bf5be9296f80bb0143ad1ddca2.tar.gz Skyblocker-eaac33822516e7bf5be9296f80bb0143ad1ddca2.tar.bz2 Skyblocker-eaac33822516e7bf5be9296f80bb0143ad1ddca2.zip |
add emissary waypoints
Diffstat (limited to 'src/main/java')
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)}), |