aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAlexey Krainev <xmrvizzy@ya.ru>2021-02-03 13:15:16 +0500
committerAlexey Krainev <xmrvizzy@ya.ru>2021-02-03 13:15:16 +0500
commitac59ecef954ff438c8fa3f0bf51c46b20af3138c (patch)
treec088648c4253a8afc2e06665504bbd9d104a57fb /src/main
parentc26890daab1b6ccf5ac9b6c5c52f4127fc1fc891 (diff)
downloadSkyblocker-ac59ecef954ff438c8fa3f0bf51c46b20af3138c.tar.gz
Skyblocker-ac59ecef954ff438c8fa3f0bf51c46b20af3138c.tar.bz2
Skyblocker-ac59ecef954ff438c8fa3f0bf51c46b20af3138c.zip
v1.0.5
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java1
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java29
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/api/AuctionAPI.java5
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java47
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/ItemUtils.java39
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java1
8 files changed, 99 insertions, 29 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 1e451ea2..cdf60eed 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -56,6 +56,7 @@ public class SkyblockerConfig implements ConfigData {
public static class DwarvenMines {
public boolean enableDrillFuel = true;
+ public boolean solveFetchur = true;
public boolean solvePuzzler = true;
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
index 159fbcee..0e8e807f 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
@@ -2,21 +2,28 @@ package me.xmrvizzy.skyblocker.mixin;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonPuzzles;
+import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur;
import me.xmrvizzy.skyblocker.skyblock.dwarven.Puzzler;
import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.ChatHudListener;
import net.minecraft.network.MessageType;
import net.minecraft.text.Text;
+import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import java.util.List;
import java.util.UUID;
@Mixin(ChatHudListener.class)
public class ChatHudListenerMixin {
+ @Shadow @Final private MinecraftClient client;
+
@Inject(method = "onChatMessage", at = @At("HEAD"), cancellable = true)
public void onMessage(MessageType messageType, Text message, UUID senderUuid, CallbackInfo ci) {
String msg = message.getString();
@@ -27,9 +34,25 @@ public class ChatHudListenerMixin {
}
if (Utils.isSkyblock) {
- if (SkyblockerConfig.get().locations.dwarvenMines.solvePuzzler &&
- msg.contains("[NPC]") && msg.contains("Puzzler"))
- Puzzler.puzzler(msg);
+ if (msg.contains("[OPEN MENU]")) {
+ List<Text> siblings = message.getSiblings();
+ for (Text sibling : siblings) {
+ if (sibling.getString().contains("[OPEN MENU]")) {
+ this.client.player.sendChatMessage(sibling.getStyle().getClickEvent().getValue());
+ }
+ }
+ }
+
+ if (msg.contains("[NPC]")) {
+ if (SkyblockerConfig.get().locations.dwarvenMines.solveFetchur &&
+ msg.contains("Fetchur")) {
+ Fetchur.solve(msg, ci);
+ }
+
+ if (SkyblockerConfig.get().locations.dwarvenMines.solvePuzzler &&
+ msg.contains("Puzzler"))
+ Puzzler.solve(msg);
+ }
if (SkyblockerConfig.get().messages.hideAbility &&
msg.contains("This ability is currently on cooldown for ") ||
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
index 41a8fd8a..1992db89 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
@@ -35,12 +35,13 @@ public abstract class ItemRendererMixin {
float current = 3000.0F;
float max = 3000.0F;
- for (String line : ItemUtils.getLore(stack)) {
+ for (String line : ItemUtils.getTooltipStrings(stack)) {
if (line.contains("Fuel: ")) {
String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim();
String[] split = clear.split("/");
current = Integer.parseInt(split[0]);
max = Integer.parseInt(split[1]) * 1000;
+ break;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/AuctionAPI.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/AuctionAPI.java
new file mode 100644
index 00000000..1ca45b74
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/AuctionAPI.java
@@ -0,0 +1,5 @@
+package me.xmrvizzy.skyblocker.skyblock.api;
+
+public class AuctionAPI {
+
+} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
new file mode 100644
index 00000000..232ad99a
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
@@ -0,0 +1,47 @@
+package me.xmrvizzy.skyblocker.skyblock.dwarven;
+
+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 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 static void solve(String message, CallbackInfo ci) {
+ MinecraftClient client = MinecraftClient.getInstance();
+ if (client.player == null) return;
+
+ 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;
+ }
+ }
+ }
+} \ No newline at end of file
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 ffc5c4bb..6c1def82 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
@@ -6,7 +6,8 @@ import net.minecraft.util.Formatting;
import net.minecraft.util.math.BlockPos;
public class Puzzler {
- public static void puzzler(String message) {
+
+ public static void solve(String message) {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null && client.world == null) return;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ItemUtils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ItemUtils.java
index ea1db236..198e91bc 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/ItemUtils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ItemUtils.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.utils;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.item.TooltipContext;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.CompoundTag;
-import net.minecraft.nbt.ListTag;
import net.minecraft.text.Text;
import java.util.ArrayList;
@@ -11,30 +11,23 @@ import java.util.List;
public class ItemUtils {
- public static List<String> getLore(ItemStack item) {
- if (item.hasTag() && item.getTag().contains("display", 10)) {
- CompoundTag tag = item.getTag().getCompound("display");
-
- if (tag.contains("Lore", 9)) {
- ListTag lore = tag.getList("Lore", 8);
+ public static List<Text> getTooltip(ItemStack item) {
+ MinecraftClient client = MinecraftClient.getInstance();
+ if (client.player != null && item != null)
+ return item.getTooltip(client.player, TooltipContext.Default.NORMAL);
+ return Collections.emptyList();
+ }
- List<String> list = new ArrayList<>();
- for (int line = 0; line < lore.size(); line++) {
- String string = lore.getString(line);
- try {
- Text text = Text.Serializer.fromJson(string);
- if (text != null) {
- string = text.getString();
- if (!string.replaceAll("\\s+","").isEmpty())
- list.add(string);
- }
- } catch (Exception e) {}
- }
+ public static List<String> getTooltipStrings(ItemStack item) {
+ List<Text> lines = getTooltip(item);
+ List<String> list = new ArrayList<>();
- return list;
- }
+ for (Text line : lines) {
+ String string = line.getString();
+ if (!string.replaceAll("\\s+","").isEmpty())
+ list.add(string);
}
- return Collections.emptyList();
+ return list;
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
index d9c20fde..719e4e4f 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -9,7 +9,6 @@ import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.scoreboard.ScoreboardObjective;
import net.minecraft.scoreboard.ScoreboardPlayerScore;
import net.minecraft.scoreboard.Team;
-import org.w3c.dom.Attr;
import java.util.ArrayList;
import java.util.Collection;