diff options
author | ExternalTime <84183548+ExternalTime@users.noreply.github.com> | 2021-09-18 22:34:35 +0200 |
---|---|---|
committer | ExternalTime <84183548+ExternalTime@users.noreply.github.com> | 2021-09-19 15:44:37 +0200 |
commit | af186a88972a6070efbdefa7aac557316b5012aa (patch) | |
tree | 36f3778e8fb391e6a0d1b12e11603239114fd52e /src/main/java/me | |
parent | 7e1c129bb48d8e54bc6dd695d2408641caf86a27 (diff) | |
download | Skyblocker-af186a88972a6070efbdefa7aac557316b5012aa.tar.gz Skyblocker-af186a88972a6070efbdefa7aac557316b5012aa.tar.bz2 Skyblocker-af186a88972a6070efbdefa7aac557316b5012aa.zip |
Rewrote Puzzler solver to use the new chat interface
Diffstat (limited to 'src/main/java/me')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java | 8 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java | 72 |
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 |