aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java
index 4c01ed4e..d6debae5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java
@@ -28,10 +28,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import org.slf4j.Logger;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -60,6 +57,7 @@ public class CrystalsLocationsManager {
private static final int REMOVE_UNKNOWN_DISTANCE = 50;
protected static Map<String, MiningLocationLabel> activeWaypoints = new HashMap<>();
+ protected static List<String> verifiedWaypoints = new ArrayList<>();
public static void init() {
// Crystal Hollows Waypoints
@@ -116,12 +114,14 @@ public class CrystalsLocationsManager {
LOGGER.error("[Skyblocker Crystals Locations Manager] Encountered an exception while extracing a location from a chat message!", e);
}
- //move waypoint to be more accurate based on locational chat messages
+ //move waypoint to be more accurate based on locational chat messages if not already verifed
if (CLIENT.player != null && SkyblockerConfigManager.get().mining.crystalsWaypoints.enabled) {
for (MiningLocationLabel.CrystalHollowsLocationsCategory waypointLocation : WAYPOINT_LOCATIONS.values()) {
String waypointLinkedMessage = waypointLocation.getLinkedMessage();
- if (waypointLinkedMessage != null && text.contains(waypointLinkedMessage)) {
+ String waypointName = waypointLocation.getName();
+ if (waypointLinkedMessage != null && text.contains(waypointLinkedMessage) && !verifiedWaypoints.contains(waypointName)) {
addCustomWaypoint(waypointLocation.getName(), CLIENT.player.getBlockPos());
+ verifiedWaypoints.add(waypointName);
}
}
}
@@ -221,6 +221,7 @@ public class CrystalsLocationsManager {
if (activeWaypoints.containsKey(place)) {
CLIENT.player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.mining.crystalsWaypoints.removeSuccess").formatted(Formatting.GREEN)).append(Text.literal(place).withColor(WAYPOINT_LOCATIONS.get(place).getColor())), false);
activeWaypoints.remove(place);
+ verifiedWaypoints.remove(place);
} else {
//send fail message
CLIENT.player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.mining.crystalsWaypoints.removeFail").formatted(Formatting.RED)), false);
@@ -262,6 +263,7 @@ public class CrystalsLocationsManager {
private static void reset() {
activeWaypoints.clear();
+ verifiedWaypoints.clear();
}
public static void update() {