aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/playerstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/playerstats')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java296
1 files changed, 155 insertions, 141 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java b/src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java
index a67535f..a37726f 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java
@@ -14,161 +14,175 @@ import net.minecraftforge.fml.common.gameevent.TickEvent;
public class ActionBarParsing {
- private static String lastActionBar = "";
- private static String lastLowActionBar = "";
- private static IChatComponent lastLowEditedActionBar = null;
+ private static String lastActionBar = "";
+ private static String lastLowActionBar = "";
+ private static IChatComponent lastLowEditedActionBar = null;
- private static final Pattern HealthRegex = Pattern.compile(
- "([0-9]+)/([0-9]+)\u2764"
- );
- private static final Pattern HealingRegex = Pattern.compile(
- "\\+([0-9]+)[\u2586\u2585\u2584\u2583\u2582\u2581]"
- );
- private static final Pattern DefenseRegex = Pattern.compile(
- "([0-9]+)\u2748 Defense"
- );
- private static final Pattern ManaRegex = Pattern.compile(
- "([0-9]+)/([0-9]+)\u270E Mana"
- );
- private static final Pattern ManaOverflowRegex = Pattern.compile(
- "([0-9]+)/([0-9]+)\u270E ([0-9]+)\u02AC"
- );
- private static final Pattern ManaDecreaseRegex = Pattern.compile(
- "-([0-9]+) Mana \\("
- );
- private static final Pattern XpGainRegex = Pattern.compile(
- "\\+(\\d*\\.?\\d*) (Farming|Mining|Combat|Foraging|Fishing|Enchanting|Alchemy|Carpentry|Runecrafting) \\((\\d*\\.?\\d*)%\\)"
- );
+ private static final Pattern HealthRegex = Pattern.compile(
+ "([0-9]+)/([0-9]+)\u2764"
+ );
+ private static final Pattern HealingRegex = Pattern.compile(
+ "\\+([0-9]+)[\u2586\u2585\u2584\u2583\u2582\u2581]"
+ );
+ private static final Pattern DefenseRegex = Pattern.compile(
+ "([0-9]+)\u2748 Defense"
+ );
+ private static final Pattern ManaRegex = Pattern.compile(
+ "([0-9]+)/([0-9]+)\u270E Mana"
+ );
+ private static final Pattern ManaOverflowRegex = Pattern.compile(
+ "([0-9]+)/([0-9]+)\u270E ([0-9]+)\u02AC"
+ );
+ private static final Pattern ManaDecreaseRegex = Pattern.compile(
+ "-([0-9]+) Mana \\("
+ );
+ private static final Pattern XpGainRegex = Pattern.compile(
+ "\\+(\\d*\\.?\\d*) (Farming|Mining|Combat|Foraging|Fishing|Enchanting|Alchemy|Carpentry|Runecrafting) \\((\\d*\\.?\\d*)%\\)"
+ );
- private static final Pattern HealthReplaceRegex = Pattern.compile(
- "\u00A7c([0-9]+)/([0-9]+)\u2764"
- );
- private static final Pattern HealingReplaceRegex = Pattern.compile(
- "\\+\u00A7c([0-9]+)[\u2586\u2585\u2584\u2583\u2582\u2581]"
- );
- private static final Pattern HealthAbsorptionReplaceRegex = Pattern.compile(
- "\u00A76([0-9]+)/([0-9]+)\u2764"
- );
- private static final Pattern DefenseReplaceRegex = Pattern.compile(
- "\u00A7a([0-9]+)\u00A7a\u2748 Defense"
- );
- private static final Pattern ManaReplaceRegex = Pattern.compile(
- "\u00A7b([0-9]+)/([0-9]+)\u270E Mana"
- );
- private static final Pattern ManaOverflowReplaceRegex = Pattern.compile(
- "\u00A7b([0-9]+)/([0-9]+)\u270E \u00A73([0-9]+)\u02AC"
- );
+ private static final Pattern HealthReplaceRegex = Pattern.compile(
+ "\u00A7c([0-9]+)/([0-9]+)\u2764"
+ );
+ private static final Pattern HealingReplaceRegex = Pattern.compile(
+ "\\+\u00A7c([0-9]+)[\u2586\u2585\u2584\u2583\u2582\u2581]"
+ );
+ private static final Pattern HealthAbsorptionReplaceRegex = Pattern.compile(
+ "\u00A76([0-9]+)/([0-9]+)\u2764"
+ );
+ private static final Pattern DefenseReplaceRegex = Pattern.compile(
+ "\u00A7a([0-9]+)\u00A7a\u2748 Defense"
+ );
+ private static final Pattern ManaReplaceRegex = Pattern.compile(
+ "\u00A7b([0-9]+)/([0-9]+)\u270E Mana"
+ );
+ private static final Pattern ManaOverflowReplaceRegex = Pattern.compile(
+ "\u00A7b([0-9]+)/([0-9]+)\u270E \u00A73([0-9]+)\u02AC"
+ );
- private static int ticksSinceLastPrediction = 0;
- private static boolean predict = false;
+ private static int ticksSinceLastPrediction = 0;
+ private static boolean predict = false;
- @SubscribeEvent
- public void tick(TickEvent.ClientTickEvent event) {
- if (predict) {
- ticksSinceLastPrediction++;
- if (ticksSinceLastPrediction == 20 && SkyblockHud.config.rpg.showRpgHud) {
- ticksSinceLastPrediction = 0;
- RPGHud.manaPredictionUpdate(true, 0);
- }
+ @SubscribeEvent
+ public void tick(TickEvent.ClientTickEvent event) {
+ if (predict) {
+ ticksSinceLastPrediction++;
+ if (
+ ticksSinceLastPrediction == 20 &&
+ SkyblockHud.config.rpg.showRpgHud
+ ) {
+ ticksSinceLastPrediction = 0;
+ RPGHud.manaPredictionUpdate(true, 0);
+ }
+ }
}
- }
- @SubscribeEvent(priority = EventPriority.HIGHEST)
- public void onStatusBarHigh(ClientChatReceivedEvent event) {
- if (
- event.type == 2 &&
- SkyblockHud.hasSkyblockScoreboard() &&
- SkyblockHud.config.rpg.showRpgHud
- ) {
- parseActionBar(event.message.getUnformattedText());
+ @SubscribeEvent(priority = EventPriority.HIGHEST)
+ public void onStatusBarHigh(ClientChatReceivedEvent event) {
+ if (
+ event.type == 2 &&
+ SkyblockHud.hasSkyblockScoreboard() &&
+ SkyblockHud.config.rpg.showRpgHud
+ ) {
+ parseActionBar(event.message.getUnformattedText());
+ }
}
- }
- @SubscribeEvent(priority = EventPriority.LOW)
- public void onStatusBarLow(ClientChatReceivedEvent event) {
- if (
- event.type == 2 &&
- SkyblockHud.hasSkyblockScoreboard() &&
- SkyblockHud.config.rpg.showRpgHud
- ) {
- String message = event.message.getUnformattedText();
- if (lastLowEditedActionBar == null || !lastLowActionBar.equals(message)) {
- lastLowActionBar = message;
- message = HealthReplaceRegex.matcher(message).replaceAll("");
- message = HealthAbsorptionReplaceRegex.matcher(message).replaceAll("");
- message = DefenseReplaceRegex.matcher(message).replaceAll("");
- message = ManaReplaceRegex.matcher(message).replaceAll("");
- message = ManaOverflowReplaceRegex.matcher(message).replaceAll("");
+ @SubscribeEvent(priority = EventPriority.LOW)
+ public void onStatusBarLow(ClientChatReceivedEvent event) {
+ if (
+ event.type == 2 &&
+ SkyblockHud.hasSkyblockScoreboard() &&
+ SkyblockHud.config.rpg.showRpgHud
+ ) {
+ String message = event.message.getUnformattedText();
+ if (
+ lastLowEditedActionBar == null ||
+ !lastLowActionBar.equals(message)
+ ) {
+ lastLowActionBar = message;
+ message = HealthReplaceRegex.matcher(message).replaceAll("");
+ message =
+ HealthAbsorptionReplaceRegex
+ .matcher(message)
+ .replaceAll("");
+ message = DefenseReplaceRegex.matcher(message).replaceAll("");
+ message = ManaReplaceRegex.matcher(message).replaceAll("");
+ message =
+ ManaOverflowReplaceRegex.matcher(message).replaceAll("");
- lastLowEditedActionBar = new ChatComponentText(message.trim());
- }
- event.message = lastLowEditedActionBar;
+ lastLowEditedActionBar = new ChatComponentText(message.trim());
+ }
+ event.message = lastLowEditedActionBar;
+ }
}
- }
- public static void parseActionBar(String input) {
- if (!lastActionBar.equals(input)) {
- lastActionBar = input;
- String bar = Utils.removeColor(input);
+ public static void parseActionBar(String input) {
+ if (!lastActionBar.equals(input)) {
+ lastActionBar = input;
+ String bar = Utils.removeColor(input);
- Matcher HealthMatcher = HealthRegex.matcher(bar);
- Matcher DefenseMatcher = DefenseRegex.matcher(bar);
- Matcher ManaMatcher = ManaRegex.matcher(bar);
- Matcher ManaUseMatcher = ManaDecreaseRegex.matcher(bar);
- Matcher ManaOverflowMatcher = ManaOverflowRegex.matcher(bar);
- Matcher XpGainMatcher = XpGainRegex.matcher(bar);
+ Matcher HealthMatcher = HealthRegex.matcher(bar);
+ Matcher DefenseMatcher = DefenseRegex.matcher(bar);
+ Matcher ManaMatcher = ManaRegex.matcher(bar);
+ Matcher ManaUseMatcher = ManaDecreaseRegex.matcher(bar);
+ Matcher ManaOverflowMatcher = ManaOverflowRegex.matcher(bar);
+ Matcher XpGainMatcher = XpGainRegex.matcher(bar);
- boolean healthFound = HealthMatcher.find();
- boolean defenseFound = DefenseMatcher.find();
- boolean manaFound = ManaMatcher.find();
- boolean manaUseFound = ManaUseMatcher.find();
- boolean manaOverflowFound = ManaOverflowMatcher.find();
- boolean xpFound = XpGainMatcher.find();
+ boolean healthFound = HealthMatcher.find();
+ boolean defenseFound = DefenseMatcher.find();
+ boolean manaFound = ManaMatcher.find();
+ boolean manaUseFound = ManaUseMatcher.find();
+ boolean manaOverflowFound = ManaOverflowMatcher.find();
+ boolean xpFound = XpGainMatcher.find();
- if (healthFound) {
- try {
- RPGHud.updateHealth(
- Integer.parseInt(HealthMatcher.group(1)),
- Integer.parseInt(HealthMatcher.group(2))
- );
- } catch (Exception ignored) {}
- }
- if (defenseFound) {
- try {
- RPGHud.updateDefense(Integer.parseInt(DefenseMatcher.group(1)));
- } catch (Exception ignored) {}
- } else if (!xpFound && !manaUseFound) {
- RPGHud.updateDefense(0);
- }
- if (manaFound) {
- try {
- RPGHud.updateMana(
- Integer.parseInt(ManaMatcher.group(1)),
- Integer.parseInt(ManaMatcher.group(2))
- );
- } catch (Exception ignored) {}
- }
- if (!manaFound && manaOverflowFound) {
- try {
- RPGHud.updateMana(
- Integer.parseInt(ManaOverflowMatcher.group(1)),
- Integer.parseInt(ManaOverflowMatcher.group(2))
- );
- RPGHud.updateOverflow(Integer.parseInt(ManaOverflowMatcher.group(3)));
- } catch (Exception ignored) {}
- }
- if (!manaFound) {
- if (manaUseFound) {
- try {
- RPGHud.manaPredictionUpdate(
- false,
- Integer.parseInt(ManaUseMatcher.group(1))
- );
- } catch (Exception ignored) {}
+ if (healthFound) {
+ try {
+ RPGHud.updateHealth(
+ Integer.parseInt(HealthMatcher.group(1)),
+ Integer.parseInt(HealthMatcher.group(2))
+ );
+ } catch (Exception ignored) {}
+ }
+ if (defenseFound) {
+ try {
+ RPGHud.updateDefense(
+ Integer.parseInt(DefenseMatcher.group(1))
+ );
+ } catch (Exception ignored) {}
+ } else if (!xpFound && !manaUseFound) {
+ RPGHud.updateDefense(0);
+ }
+ if (manaFound) {
+ try {
+ RPGHud.updateMana(
+ Integer.parseInt(ManaMatcher.group(1)),
+ Integer.parseInt(ManaMatcher.group(2))
+ );
+ } catch (Exception ignored) {}
+ }
+ if (!manaFound && manaOverflowFound) {
+ try {
+ RPGHud.updateMana(
+ Integer.parseInt(ManaOverflowMatcher.group(1)),
+ Integer.parseInt(ManaOverflowMatcher.group(2))
+ );
+ RPGHud.updateOverflow(
+ Integer.parseInt(ManaOverflowMatcher.group(3))
+ );
+ } catch (Exception ignored) {}
+ }
+ if (!manaFound) {
+ if (manaUseFound) {
+ try {
+ RPGHud.manaPredictionUpdate(
+ false,
+ Integer.parseInt(ManaUseMatcher.group(1))
+ );
+ } catch (Exception ignored) {}
+ }
+ RPGHud.manaPredictionUpdate(true, 0);
+ }
+ predict = !manaFound;
}
- RPGHud.manaPredictionUpdate(true, 0);
- }
- predict = !manaFound;
}
- }
}