diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java | 20 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java | 5 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java b/src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java index 3b41af31..b7afe430 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java @@ -1,10 +1,16 @@ package de.hysky.skyblocker.skyblock.barn; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.chat.ChatFilterResult; import de.hysky.skyblocker.utils.chat.ChatPatternListener; import net.minecraft.client.MinecraftClient; +import net.minecraft.text.ClickEvent; +import net.minecraft.text.HoverEvent; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; @@ -28,10 +34,22 @@ public class TreasureHunter extends ChatPatternListener { String hint = matcher.group(1); String location = locations.get(hint); if (location == null) return false; - client.player.sendMessage(Text.of("§e[NPC] Treasure Hunter§f: Go mine around " + location + "."), false); + client.player.sendMessage(Text.of("§e[NPC] Treasure Hunter§f: Go mine around " + location), false); + requestWaypoint(location); return true; } + private static void requestWaypoint(String location) { + String command = "/skyblocker waypoints individual " + location + " Treasure"; + MutableText requestMessage = Constants.PREFIX.get().append(Text.translatable("skyblocker.config.chat.waypoints.display", java.util.Arrays.stream(location.split(" ")).mapToInt(Integer::parseInt).boxed().toArray()).formatted(Formatting.AQUA) + .styled(style -> style + .withHoverEvent(new HoverEvent.ShowText(Text.translatable("skyblocker.config.chat.waypoints.display"))) + .withClickEvent(new ClickEvent.RunCommand(command.trim())) + ) + ); + MinecraftClient.getInstance().player.sendMessage(requestMessage, false); + } + static { locations = new HashMap<>(); locations.put("There's a treasure chest somewhere in a small cave in the gorge.", "258 70 -492"); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java index 7daeb998..f76cf310 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java @@ -52,6 +52,11 @@ public class ChatPositionShare { if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.waypoints.enableWaypoints) { String message = text.getString(); + // prevents parsing skyblocker's own messages. Also prevents TH solver from parsing as it already has own waypoint + if (message.startsWith("[Skyblocker]") || message.startsWith("§e[NPC] Treasure Hunter§f:")) { + return; + } + for (Pattern pattern : PATTERNS) { Matcher matcher = pattern.matcher(message); if (matcher.find()) { |
