//package com.thatgravyboat.skyblockhud.dungeons; // //import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent; //import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent; //import com.thatgravyboat.skyblockhud.location.LocationHandler; //import com.thatgravyboat.skyblockhud.location.Locations; //import com.thatgravyboat.skyblockhud.utils.Utils; //import java.util.HashMap; //import java.util.regex.Matcher; //import java.util.regex.Pattern; //import net.minecraft.client.Minecraft; //import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; // //public class DungeonHandler { // // private static final HashMap dungeonPlayersMap = new HashMap<>(); // private static int dungeonTime = 0; // private static int dungeonCleared = 0; // private static boolean bloodKey = false; // private static int witherKeys = 0; // private static int maxSecrets = 0; // private static int secrets = 0; // private static int totalSecrets = 0; // private static int deaths = 0; // private static int crypts = 0; // // private static final Pattern DungeonPlayerRegex = Pattern.compile("^\\[([HMBAT])] ([\\w]+) ([0-9]+|DEAD)$"); // // @SubscribeEvent // public void onSidebarLineUpdate(SidebarLineUpdateEvent event) { // if (LocationHandler.getCurrentLocation().equals(Locations.CATACOMBS)) { // DungeonHandler.checkForDungeonTime(event.formattedLine); // DungeonHandler.checkForDungeonCleared(event.formattedLine); // DungeonHandler.checkForDungeonKeys(event.formattedLine, event.rawLine); // DungeonHandler.checkForDungeonPlayers(event.formattedLine, Minecraft.getMinecraft()); // } // } // // @SubscribeEvent // public void onSidebarPost(SidebarPostEvent event) { // if (!LocationHandler.getCurrentLocation().equals(Locations.CATACOMBS)) { // DungeonHandler.clearDungeonStats(); // } // } // // public static void checkForDungeonPlayers(String scoreLine, Minecraft mc) { // Matcher dungeonMatcher = DungeonPlayerRegex.matcher(scoreLine); // if (dungeonMatcher.matches() && DungeonHandler.dungeonTime > 0) { // Classes playerClass = Classes.valueOf(dungeonMatcher.group(1)); // String displayName = dungeonMatcher.group(2); // String health = dungeonMatcher.group(3); // if (!mc.thePlayer.getName().toLowerCase().startsWith(displayName.toLowerCase().trim())) { // int healthNum = 0; // if (!health.equalsIgnoreCase("dead")) { // try { // healthNum = Integer.parseInt(health); // } catch (NumberFormatException ignored) {} // } // DungeonPlayer player = new DungeonPlayer(playerClass, displayName, healthNum, health.equalsIgnoreCase("dead")); // dungeonPlayersMap.put(displayName.toLowerCase(), player); // } // } // } // // public static void checkForDungeonTime(String scoreLine) { // if (scoreLine.toLowerCase().trim().contains("time elapsed:")) { // String timeLine = scoreLine.toLowerCase().trim().replace("time elapsed:", ""); // String[] times = timeLine.split("m "); // int time = 0; // try { // time += Integer.parseInt(times[0].replace(" ", "").replace("m", "")) * 60; // time += Integer.parseInt(times[1].replace(" ", "").replace("s", "")); // } catch (NumberFormatException ignored) {} // dungeonTime = time; // } // } // // public static void checkForDungeonCleared(String scoreline) { // if (scoreline.toLowerCase().trim().contains("dungeon cleared:")) { // String dungeonClearedText = scoreline.toLowerCase().trim().replace("dungeon cleared:", "").replace(" ", "").replace("%", ""); // try { // dungeonCleared = Integer.parseInt(dungeonClearedText); // } catch (NumberFormatException ignored) {} // } // } // // public static void checkForDungeonKeys(String scoreline, String rawString) { // if (scoreline.toLowerCase().trim().contains("keys:")) { // String dungeonClearedText = scoreline.toLowerCase().trim().replace("keys:", "").replace(" ", "").replace("x", ""); // bloodKey = rawString.contains("\u2713"); // try { // witherKeys = Integer.parseInt(dungeonClearedText); // } catch (NumberFormatException ignored) {} // } // } // // public static void parseSecrets(String statusBar) { // boolean hasSecrets = false; // String[] parts = statusBar.split(" {4,}"); // for (String part : parts) { // if (part.toLowerCase().contains("secrets") && !statusBar.toLowerCase().contains("no secrets")) { // hasSecrets = true; // try { // String secret = Utils.removeColor(part.replace("Secrets", "")).replace(" ", ""); // maxSecrets = Integer.parseInt(secret.split("/")[1]); // secrets = Integer.parseInt(secret.split("/")[0]); // } catch (NumberFormatException ignored) {} // } // } // if (!hasSecrets) { // maxSecrets = 0; // secrets = 0; // } // } // // public static void parseTotalSecrets(String playerName) { // if (playerName.toLowerCase().contains("secrets found:")) { // String totalSecret = Utils.removeColor(playerName.toLowerCase().replace("secrets found:", "")).replace(" ", ""); // try { // totalSecrets = Integer.parseInt(totalSecret); // } catch (NumberFormatException ignored) {} // } // } // // public static void parseDeaths(String playerName) { // if (playerName.toLowerCase().contains("deaths:")) { // String death = Utils.removeColor(playerName.toLowerCase().replace("deaths:", "")).replace("(", "").replace(")", "").replace(" ", ""); // try { // deaths = Integer.parseInt(death); // } catch (NumberFormatException ignored) {} // } // } // // public static void parseCrypts(String playerName) { // if (playerName.toLowerCase().contains("crypts:")) { // String crypt = Utils.removeColor(playerName.toLowerCase().replace("crypts:", "")).replace(" ", ""); // try { // crypts = Integer.parseInt(crypt); // } catch (NumberFormatException ignored) {} // } // } // // public static void clearDungeonStats() { // dungeonPlayersMap.clear(); // dungeonTime = 0; // dungeonCleared = 0; // bloodKey = false; // witherKeys = 0; // maxSecrets = 0; // secrets = 0; // totalSecrets = 0; // deaths = 0; // crypts = 0; // } // // public static HashMap getDungeonPlayers() { // return dungeonPlayersMap; // } // // public static int getDungeonTime() { // return dungeonTime; // } // // public static int getDungeonCleared() { // return dungeonCleared; // } // // public static int getWitherKeys() { // return witherKeys; // } // // public static boolean hasBloodkey() { // return bloodKey; // } // // public static int getMaxSecrets() { // return maxSecrets; // } // // public static int getSecrets() { // return secrets; // } // // public static int getDeaths() { // return deaths; // } // // public static int getTotalSecrets() { // return totalSecrets; // } // // public static int getCrypts() { // return crypts; // } //}