diff options
author | TymanWasTaken <tyman@tyman.tech> | 2021-07-06 17:15:21 -0400 |
---|---|---|
committer | TymanWasTaken <tyman@tyman.tech> | 2021-07-06 17:17:22 -0400 |
commit | a8e475fa0a7977f64f072548459d592274169d66 (patch) | |
tree | 2f6e3c2fc4aa55c52b848adc493a9ecc842e53f8 /src/main/java/com/thatgravyboat/skyblockhud/playerstats | |
parent | bb75fd7b83b238f1f922ffc64b2a0a535c5524b7 (diff) | |
download | SkyblockHud-Death-Defied-a8e475fa0a7977f64f072548459d592274169d66.tar.gz SkyblockHud-Death-Defied-a8e475fa0a7977f64f072548459d592274169d66.tar.bz2 SkyblockHud-Death-Defied-a8e475fa0a7977f64f072548459d592274169d66.zip |
Format v2
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/playerstats')
-rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/playerstats/ActionBarParsing.java | 296 |
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; } - } } |