From 0fd1476fe7b0fe3393d497254f677a1d2cddab92 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:48:30 -0500 Subject: [PATCH 1/2] Option to share fairy grottos --- .../skyblocker/config/categories/MiningCategory.java | 9 ++++++++- .../skyblocker/config/configs/MiningConfig.java | 3 +++ .../skyblock/dwarven/CrystalsLocationsManager.java | 12 ++++++------ src/main/resources/assets/skyblocker/lang/en_us.json | 2 ++ 4 files changed, 19 insertions(+), 7 deletions(-) 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 364e9b0765..f978849c37 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 static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig 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 d2b3beb582..652925966b 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 static class CrystalsWaypoints { @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 a97e6051ba..1ae5def657 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.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() { @@ -396,9 +395,10 @@ private static void update() { } 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); } } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 21ad41b1ac..27dbe0ee30 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -578,6 +578,8 @@ "skyblocker.config.mining.crystalsWaypoints.shareFail": "Can only share waypoints you have found.", "skyblocker.config.mining.crystalsWaypoints.removeSuccess": "Removed waypoint for ", "skyblocker.config.mining.crystalsWaypoints.removeFail": "Can only remove waypoints you have found.", + "skyblocker.config.mining.crystalsWaypoints.shareFairyGrotto": "Share Fairy Grotto", + "skyblocker.config.mining.crystalsWaypoints.shareFairyGrotto.@Tooltip": "Share Fairy Grotto locations to the web socket.", "skyblocker.config.mining.crystalsWaypoints.wishingCompassSolver": "Wishing Compass Solver", "skyblocker.config.mining.crystalsWaypoints.wishingCompassSolver.@Tooltip": "Calculates and adds a waypoint at the location indicated by wishing compasses.", "skyblocker.config.mining.crystalsWaypoints.wishingCompassSolver.enableTabMessage": "Enable crystals in the /tab to allow the compass to identify discovered items", From 240b7523dedeb4f9e0327af4d3f5dc3c495ec31e Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:34:25 -0500 Subject: [PATCH 2/2] Update CrystalsLocationsManager --- .../skyblocker/skyblock/dwarven/CrystalsLocationsManager.java | 1 + 1 file changed, 1 insertion(+) 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 1ae5def657..06e31a4cd5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -324,6 +324,7 @@ public static int removeWaypoint(String place) { 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);