aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-18 21:45:16 +0200
committerExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-19 15:44:13 +0200
commit7e1c129bb48d8e54bc6dd695d2408641caf86a27 (patch)
treebf08e69089ebf8a589699bd007d9dd3595ec62fa
parentbc565c0e0bfbc5e87af8191519980a440da5bfa4 (diff)
downloadSkyblocker-7e1c129bb48d8e54bc6dd695d2408641caf86a27.tar.gz
Skyblocker-7e1c129bb48d8e54bc6dd695d2408641caf86a27.tar.bz2
Skyblocker-7e1c129bb48d8e54bc6dd695d2408641caf86a27.zip
Rewrote Fetchur solver to use the new interface
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java68
2 files changed, 40 insertions, 31 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
index 5c431678..17a5c4e5 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
@@ -1,9 +1,12 @@
package me.xmrvizzy.skyblocker.chat;
+import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur;
+
import java.util.regex.Matcher;
public class ChatParser {
private final ChatListener[] listeners = new ChatListener[] {
+ new Fetchur(),
};
public boolean shouldFilter(String message) {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
index 232ad99a..0051e1dd 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
@@ -1,47 +1,53 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
+import me.xmrvizzy.skyblocker.chat.ChatListener;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
-import net.minecraft.util.Formatting;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-public class Fetchur {
+public class Fetchur extends ChatListener {
+ private static Map<String, String> answers;
- public static Map<String, List<String>> getAnswers() {
- Map<String, List<String>> answers = new HashMap<>();
- answers.put("yellow, see-through", Arrays.asList(new TranslatableText("block.minecraft.yellow_stained_glass").getString()));
- answers.put("circular and sometimes moves", Arrays.asList(new TranslatableText("item.minecraft.compass").getString()));
- answers.put("circlular and sometimes moves", Arrays.asList(new TranslatableText("item.minecraft.compass").getString()));
- answers.put("expensive minerals", Arrays.asList("Mithril"));
- answers.put("useful during celebrations", Arrays.asList(new TranslatableText("item.minecraft.firework_rocket").getString()));
- answers.put("hot, gives energy", Arrays.asList("Cheap Coffee", "Decent Coffee"));
- answers.put("tall, can be opened", Arrays.asList(new TranslatableText("block.minecraft.oak_door").getString()));
- answers.put("explosive, more than usual", Arrays.asList("Superboom TNT"));
- answers.put("wearable, grows", Arrays.asList(new TranslatableText("block.minecraft.pumpkin").getString()));
- answers.put("shiny, makes sparks", Arrays.asList(new TranslatableText("item.minecraft.flint_and_steel").getString()));
- answers.put("red and white and you can mine it", Arrays.asList(new TranslatableText("block.minecraft.nether_quartz_ore").getString()));
- answers.put("round and green, or purple", Arrays.asList(new TranslatableText("item.minecraft.ender_pearl").getString()));
- answers.put("red and Soft", Arrays.asList(new TranslatableText("block.minecraft.red_wool").getString()));
- return answers;
+ public Fetchur() {
+ super("^§e\\[NPC] Fetchur§f: (?:its|theyre) ([a-zA-Z, \\-]*)$");
}
- public static void solve(String message, CallbackInfo ci) {
+ @Override
+ public boolean isEnabled() {
+ return SkyblockerConfig.get().locations.dwarvenMines.solveFetchur;
+ }
+
+ @Override
+ public boolean onMessage(String[] groups) {
MinecraftClient client = MinecraftClient.getInstance();
- if (client.player == null) return;
+ assert client.player != null;
+ String answer = answers.getOrDefault(groups[1], groups[1]);
+ client.player.sendMessage(Text.of("§e[NPC] Fetchur§f: " + answer), false);
+ return true;
+ }
- for (String key : getAnswers().keySet()) {
- if (message.contains(key)) {
- Text text = Text.of(message + " " + Formatting.GREEN + getAnswers().get(key).toString());
- client.player.sendMessage(text, false);
- ci.cancel();
- break;
- }
- }
+ static {
+ //It seems that hints on wiki aren't up to date.
+ //I will assume doors weren't the only ones changed
+ //and that admins did it to make hints more consistent.
+ //Will need to verify if this true.
+ //Changed most commas into "and"s.
+ answers = new HashMap<>();
+ answers.put("yellow and see-through", new TranslatableText("block.minecraft.yellow_stained_glass").getString());
+ answers.put("circular and sometimes moves", new TranslatableText("item.minecraft.compass").getString());
+ answers.put("expensive minerals", "Mithril");
+ answers.put("useful during celebrations", new TranslatableText("item.minecraft.firework_rocket").getString());
+ answers.put("hot and gives energy", "Cheap / Decent Coffee");
+ answers.put("tall and can be opened", new TranslatableText("block.minecraft.oak_door").getString());
+ answers.put("explosive, more than usual", "Superboom TNT");
+ answers.put("wearable and grows", new TranslatableText("block.minecraft.pumpkin").getString());
+ answers.put("shiny and makes sparks", new TranslatableText("item.minecraft.flint_and_steel").getString());
+ answers.put("red and white and you can mine it", new TranslatableText("block.minecraft.nether_quartz_ore").getString());
+ answers.put("round and green, or purple", new TranslatableText("item.minecraft.ender_pearl").getString());
+ answers.put("red and Soft", new TranslatableText("block.minecraft.red_wool").getString());
}
} \ No newline at end of file