aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/barn/TreasureHunter.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java5
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()) {