From e0559a5cade1ae44ddc0cc6323e17fda3cb42d7b Mon Sep 17 00:00:00 2001 From: Kevin <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 12 Dec 2024 22:16:16 -0500 Subject: Option to share fairy grottos (#1072) * Option to share fairy grottos * Update CrystalsLocationsManager --- .../hysky/skyblocker/config/categories/MiningCategory.java | 9 ++++++++- .../de/hysky/skyblocker/config/configs/MiningConfig.java | 3 +++ .../skyblock/dwarven/CrystalsLocationsManager.java | 13 +++++++------ 3 files changed, 18 insertions(+), 7 deletions(-) (limited to 'src/main/java/de') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java index 364e9b07..f978849c 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java @@ -197,7 +197,14 @@ public class MiningCategory { newValue -> config.mining.crystalsWaypoints.wishingCompassSolver = newValue) .controller(ConfigUtils::createBooleanController) .build()) - + .option(Option.createBuilder() + .name(Text.translatable("skyblocker.config.mining.crystalsWaypoints.shareFairyGrotto")) + .description(OptionDescription.of(Text.translatable("skyblocker.config.mining.crystalsWaypoints.shareFairyGrotto.@Tooltip"))) + .binding(defaults.mining.crystalsWaypoints.shareFairyGrotto, + () -> config.mining.crystalsWaypoints.shareFairyGrotto, + newValue -> config.mining.crystalsWaypoints.shareFairyGrotto = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) .build()) //commission waypoints diff --git a/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java index d2b3beb5..65292596 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java @@ -111,6 +111,9 @@ public class MiningConfig { @SerialEntry public boolean wishingCompassSolver = true; + + @SerialEntry + public boolean shareFairyGrotto = true; } public static class CommissionWaypoints { 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 a97e6051..06e31a4c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -34,7 +34,6 @@ import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import org.slf4j.Logger; import java.util.*; @@ -68,7 +67,7 @@ public class CrystalsLocationsManager { protected static Map activeWaypoints = new HashMap<>(); protected static List verifiedWaypoints = new ArrayList<>(); - private static List waypointsSent2Socket = new ArrayList<>(); + private static final List waypointsSent2Socket = new ArrayList<>(); @Init public static void init() { @@ -325,6 +324,7 @@ public class CrystalsLocationsManager { public static void addCustomWaypointFromSocket(MiningLocationLabel.CrystalHollowsLocationsCategory category, BlockPos pos) { if (activeWaypoints.containsKey(category.getName())) return; + if (category == MiningLocationLabel.CrystalHollowsLocationsCategory.FAIRY_GROTTO && !SkyblockerConfigManager.get().mining.crystalsWaypoints.shareFairyGrotto) return; removeUnknownNear(pos); MiningLocationLabel waypoint = new MiningLocationLabel(category, pos); @@ -396,9 +396,10 @@ public class CrystalsLocationsManager { } private static void trySendWaypoint2Socket(MiningLocationLabel.CrystalHollowsLocationsCategory category) { - if (!waypointsSent2Socket.contains(category)) { - WsMessageHandler.sendMessage(Service.CRYSTAL_WAYPOINTS, new CrystalsWaypointMessage(category, CLIENT.player.getBlockPos())); - waypointsSent2Socket.add(category); - } + if (waypointsSent2Socket.contains(category)) return; + if (category == MiningLocationLabel.CrystalHollowsLocationsCategory.FAIRY_GROTTO && !SkyblockerConfigManager.get().mining.crystalsWaypoints.shareFairyGrotto) return; + + WsMessageHandler.sendMessage(Service.CRYSTAL_WAYPOINTS, new CrystalsWaypointMessage(category, CLIENT.player.getBlockPos())); + waypointsSent2Socket.add(category); } } -- cgit