aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock
diff options
context:
space:
mode:
authorExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-19 20:23:00 +0200
committerExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-19 20:23:00 +0200
commit2ad341ec3ca6d8ca7b75f364aaaf2eb1172430f9 (patch)
tree4ddf28921cac39f0535d00fc3c2ed013106dcc87 /src/main/java/me/xmrvizzy/skyblocker/skyblock
parentee5d7d950ac836c0385003eb32da2dc6e51877d4 (diff)
downloadSkyblocker-2ad341ec3ca6d8ca7b75f364aaaf2eb1172430f9.tar.gz
Skyblocker-2ad341ec3ca6d8ca7b75f364aaaf2eb1172430f9.tar.bz2
Skyblocker-2ad341ec3ca6d8ca7b75f364aaaf2eb1172430f9.zip
Changed approach to parsing action bar as to not block potentially useful information
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
index 1efe66d6..89f26140 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
@@ -7,6 +7,7 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import java.util.regex.Matcher;
@@ -15,7 +16,7 @@ import java.util.regex.Pattern;
public class FancyStatusBars extends DrawableHelper {
private static final MinecraftClient client = MinecraftClient.getInstance();
private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE,"textures/gui/bars.png");
- private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤ +§(?:a([0-9]+)§a❈ Defense|b-[0-9]+ Mana \\(§6[a-zA-Z ]+§b\\)) +§(?:b([0-9]+)/([0-9]+)✎ Mana|[0-9,]+/[0-9,]+k? Drill Fuel)(?: {4}§e§lⓩ{0,5}§6§lⓄ{0,5})?$");
+ private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤ {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ Mana|(\\S+(?: \\S+)*))(?: {3,}(\\S+(?: \\S+)*))?$");
private final Resource health;
private final Resource mana;
private int defense;
@@ -35,11 +36,30 @@ public class FancyStatusBars extends DrawableHelper {
health.set(matcher.group(1), matcher.group(2));
if(matcher.group(3) != null)
defense = Integer.parseInt(matcher.group(3));
- if(matcher.group(4) != null)
- mana.set(matcher.group(4), matcher.group(5));
+ if(matcher.group(5) != null)
+ mana.set(matcher.group(5), matcher.group(6));
+
+ StringBuilder sb = new StringBuilder();
+ appendIfNotNull(sb, matcher.group(4));
+ appendIfNotNull(sb, matcher.group(7));
+ appendIfNotNull(sb, matcher.group(8));
+
+ if(!sb.isEmpty()) {
+ assert client.player != null;
+ client.player.sendMessage(Text.of(sb.toString()), true);
+ }
+
return true;
}
+ private void appendIfNotNull(StringBuilder sb, String str) {
+ if(str == null)
+ return;
+ if(!sb.isEmpty())
+ sb.append(" ");
+ sb.append(str);
+ }
+
public boolean render(MatrixStack matrices, int scaledWidth, int scaledHeight) {
if(!SkyblockerConfig.get().general.bars.enableBars)
return false;
@@ -49,6 +69,7 @@ public class FancyStatusBars extends DrawableHelper {
int hpFillWidth = (int) (health.getFillLevel() * 33.0F);
int hpOverflowWidth = (int) (health.getOverflow() * 33.0F);
int manaFillWidth = (int) (mana.getFillLevel() * 33.0F);
+ assert client.player != null;
int xp = (int) (client.player.experienceProgress * 33.0F);
// Icons