aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java8
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java72
2 files changed, 52 insertions, 28 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
index 17a5c4e5..f1a84fd1 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
@@ -1,17 +1,19 @@
package me.xmrvizzy.skyblocker.chat;
import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur;
+import me.xmrvizzy.skyblocker.skyblock.dwarven.Puzzler;
import java.util.regex.Matcher;
public class ChatParser {
- private final ChatListener[] listeners = new ChatListener[] {
- new Fetchur(),
+ private final ChatListener[] listeners = new ChatListener[]{
+ new Fetchur(),
+ new Puzzler(),
};
public boolean shouldFilter(String message) {
for (ChatListener listener : listeners) {
- if(listener.isEnabled()) {
+ if (listener.isEnabled()) {
Matcher m = listener.getPattern().matcher(message);
if (m.matches()) {
String[] groups = new String[m.groupCount() + 1];
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
index 6c1def82..377ffbf4 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
@@ -1,35 +1,57 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
-import net.minecraft.block.Blocks;
+import me.xmrvizzy.skyblocker.chat.ChatListener;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.util.Formatting;
-import net.minecraft.util.math.BlockPos;
+import net.minecraft.text.Text;
-public class Puzzler {
-
- public static void solve(String message) {
- MinecraftClient client = MinecraftClient.getInstance();
- if (client.player == null && client.world == null) return;
-
- int x = 181;
- int y = 195;
- int z = 135;
+public class Puzzler extends ChatListener {
+ public Puzzler() {
+ super("^§e\\[NPC] §dPuzzler§f: ((?:§d▲|§5▶|§b◀|§a▼){10})$");
+ }
- String path = Formatting.strip(message);
- path = path.substring(path.indexOf(":") + 2);
- String check = path
- .replaceAll("▲", "").replaceAll("▶", "")
- .replaceAll("▼", "").replaceAll("◀", "");
+ @Override
+ public boolean isEnabled() {
+ return SkyblockerConfig.get().locations.dwarvenMines.solvePuzzler;
+ }
- if (check.isEmpty()) {
- for (char c : path.toCharArray()) {
- if (c == '▲') z += 1;
- if (c == '▶') x -= 1;
- if (c == '▼') z -= 1;
- if (c == '◀') x += 1;
+ @Override
+ public boolean onMessage(String[] groups) {
+ int x = 0;
+ int z = 0;
+ for (char c : groups[1].toCharArray()) {
+ switch (c) {
+ case '▲': z += 1;
+ case '▶': x -= 1;
+ case '▼': z -= 1;
+ case '◀': x += 1;
}
-
- client.world.setBlockState(new BlockPos(x, y, z), Blocks.EMERALD_BLOCK.getDefaultState());
}
+ StringBuilder message = new StringBuilder("§e[NPC] §dPuzzler§f: ");
+ if(z > 0) {
+ message.append("§d");
+ message.append(z);
+ message.append("▲");
+ }
+ else if (z < 0) {
+ message.append("§a▼");
+ message.append(-z);
+ message.append("▼");
+ }
+ if(x > 0) {
+ message.append("§b");
+ message.append(x);
+ message.append("◀");
+ }
+ else if (x < 0) {
+ message.append("§5▶");
+ message.append(-x);
+ message.append("▶");
+ }
+
+ MinecraftClient client = MinecraftClient.getInstance();
+ assert client.player != null;
+ client.player.sendMessage(Text.of(message.toString()), false);
+ return true;
}
} \ No newline at end of file