aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-03-07 20:56:42 -0500
committerTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-03-07 20:56:42 -0500
commit9babf902ffe605a42c24d07891ef09d3836f754c (patch)
treefd43e03dfbfb705de9448d7bccb01369d5ffdf12 /src/main/java
parent165d2a190cf82b90bc47cf7a3875a094fab9b81a (diff)
downloadSkyblocker-9babf902ffe605a42c24d07891ef09d3836f754c.tar.gz
Skyblocker-9babf902ffe605a42c24d07891ef09d3836f754c.tar.bz2
Skyblocker-9babf902ffe605a42c24d07891ef09d3836f754c.zip
added commission HUD
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java11
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java73
3 files changed, 86 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
index e1d1b612..676a4e84 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
@@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
import me.xmrvizzy.skyblocker.skyblock.api.StatsCommand;
+import me.xmrvizzy.skyblocker.skyblock.dwarven.DwarvenHud;
import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup;
import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry;
@@ -17,5 +18,6 @@ public class SkyblockerInitializer implements ClientModInitializer {
WikiLookup.init();
ItemRegistry.init();
StatsCommand.init();
+ DwarvenHud.init();
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 270631b4..f2f39567 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -122,6 +122,17 @@ public class SkyblockerConfig implements ConfigData {
public boolean enableDrillFuel = true;
public boolean solveFetchur = true;
public boolean solvePuzzler = true;
+ @ConfigEntry.Gui.CollapsibleObject(startExpanded = true)
+ public DwarvenHud dwarvenHud = new DwarvenHud();
+ }
+
+ public static class DwarvenHud {
+ public boolean enabled = true;
+ public boolean enableBackground = true;
+ @ConfigEntry.BoundedDiscrete(min = 3, max = 700)
+ public int x = 10;
+ @ConfigEntry.BoundedDiscrete(min = 3, max = 427)
+ public int y = 10;
}
public static class Messages {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
new file mode 100644
index 00000000..f1aa2ff6
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -0,0 +1,73 @@
+package me.xmrvizzy.skyblocker.skyblock.dwarven;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.DrawableHelper;
+import net.minecraft.text.LiteralText;
+import net.minecraft.util.Formatting;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class DwarvenHud {
+
+
+ public static MinecraftClient client = MinecraftClient.getInstance();
+
+ public static final List<Pattern> COMMISSIONS = List.of(
+ Pattern.compile("^.*((?:Titanium|Mithril|Hard Stone) Miner): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Ice Walker|Goblin|Goblin Raid|Automaton|Sludge|Team Treasuite Member|Yog|Boss Corleone|Thyst) Slayer): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Lava Springs|Cliffside Veins|Rampart's Quarry|Upper Mines|Royal Mines) Mithril): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Lava Springs|Cliffside Veins|Rampart's Quarry|Upper Mines|Royal Mines) Titanium): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*(Goblin Raid): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Powder Ghast|Star Sentry) Puncher): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*(Raffle): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*(Lucky Raffle): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*(2x Mithril Powder Collector): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Ruby|Amber|Sapphire|Jade|Amethyst|Topaz) Gemstone Collector): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*((?:Amber|Sapphire|Jade|Amethyst|Topaz) Crystal Hunter): (\\d+\\.?\\d*%|DONE)"),
+ Pattern.compile("^.*(Chest Looter): (\\d+\\.?\\d*%|DONE)")
+ );
+ public static void init(){
+ HudRenderCallback.EVENT.register((matrixStack, tickDelta) -> {
+ if (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled) {
+ int hudX = SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x;
+ int hudY = SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y;
+ List<Commission> commissions = new ArrayList<>();
+ client.getNetworkHandler().getPlayerList().forEach(playerListEntry -> {
+ if (playerListEntry.getDisplayName() != null) {
+ for (Pattern pattern : COMMISSIONS) {
+ Matcher matcher = pattern.matcher(playerListEntry.getDisplayName().getString());
+ if (matcher.find()) {
+ commissions.add(new Commission(matcher.group(1), matcher.group(2)));
+ }
+
+ }
+ }
+ });
+ if (commissions.size() > 0){
+ if (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground)
+ DrawableHelper.fill(matrixStack, hudX, hudY, hudX + 150, hudY + 50, 0x64000000);
+ int y = 0;
+ for (Commission commission : commissions) {
+ client.textRenderer.drawWithShadow(matrixStack, new LiteralText(commission.commission).styled(style -> style.withColor(Formatting.AQUA)).append(new LiteralText(": " + commission.progression).styled(style -> style.withColor(Formatting.GREEN))), hudX + 5, hudY + y + 5, 0xFFFFFFFF);
+ y += 20;
+ }
+ }
+ }
+ });
+ }
+
+ public static class Commission{
+ String commission;
+ String progression;
+
+ public Commission(String commission, String progression){
+ this.commission = commission;
+ this.progression = progression;
+ }
+ }
+}