aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud_2/location
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-08 16:12:55 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-08 16:12:55 +0200
commit4463c7fa78f886a8abc09e867dd17cde2a685ad4 (patch)
tree9245b4eed7f410f1c168688a77eeda6bfd55c994 /src/main/java/com/thatgravyboat/skyblockhud_2/location
parent9e08dbf2baa9819abd281ad285df7462c99491e2 (diff)
downloadskyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.tar.gz
skyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.tar.bz2
skyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.zip
code cleanup
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud_2/location')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java53
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java41
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java28
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java67
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java54
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java44
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java161
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java192
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java29
9 files changed, 669 insertions, 0 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java
new file mode 100644
index 000000000..947f14f4e
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java
@@ -0,0 +1,53 @@
+package com.thatgravyboat.skyblockhud_2.location;
+
+public class EndIslandHandler {
+
+ public enum dragonTypes {
+ PROTECTOR("Protector Dragon", 9000000),
+ OLD("Old Dragon", 15000000),
+ WISE("Wise Dragon", 9000000),
+ UNSTABLE("Unstable Dragon", 9000000),
+ YOUNG("Young Dragon", 7500000),
+ STRONG("Strong Dragon", 9000000),
+ SUPERIOR("Superior Dragon", 12000000),
+ NODRAGON("", 0);
+
+ private final String displayName;
+ private final int maxHealth;
+
+ dragonTypes(String displayName, int maxHealth) {
+ this.displayName = displayName;
+ this.maxHealth = maxHealth;
+ }
+
+ public String getDisplayName() {
+ return this.displayName;
+ }
+
+ public int getMaxHealth() {
+ return this.maxHealth;
+ }
+
+ public static dragonTypes findDragon(String input) {
+ if (input.contains(" ")) {
+ try {
+ return dragonTypes.valueOf(input.toLowerCase().replace("dragon", "").replace(" ", "").toUpperCase());
+ } catch (IllegalArgumentException ignored) {
+ return NODRAGON;
+ }
+ } else {
+ try {
+ return dragonTypes.valueOf(input);
+ } catch (IllegalArgumentException ignored) {
+ return NODRAGON;
+ }
+ }
+ }
+ }
+
+ private static dragonTypes currentDragon = dragonTypes.NODRAGON;
+
+ public static void setCurrentDragon(dragonTypes dragon) {
+ currentDragon = dragon;
+ }
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java
new file mode 100644
index 000000000..eab69090d
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java
@@ -0,0 +1,41 @@
+package com.thatgravyboat.skyblockhud_2.location;
+
+import com.thatgravyboat.skyblockhud_2.api.events.ProfileSwitchedEvent;
+import com.thatgravyboat.skyblockhud_2.api.events.SidebarLineUpdateEvent;
+import java.util.Arrays;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+public class FarmHouseHandler {
+
+ public enum Medal {
+ BRONZE,
+ SILVER,
+ GOLD
+ }
+
+ private static final int[] medals = new int[Medal.values().length];
+
+ @SubscribeEvent
+ public void onSidebarLineUpdate(SidebarLineUpdateEvent event) {
+ if (event.formattedLine.contains("medals:")) {
+ for (Medal value : Medal.values()) {
+ if (event.formattedLine.contains(value.name())) {
+ try {
+ medals[value.ordinal()] = Integer.parseInt(event.formattedLine.replace("medals:", "").replace(value.name(), "").trim());
+ } catch (Exception ignored) {}
+ break;
+ }
+ }
+ }
+ }
+
+ @SubscribeEvent
+ public void onProfileSwitch(ProfileSwitchedEvent event) {
+ Arrays.fill(medals, 0);
+ }
+
+ public static String getFormattedMedals(Medal medal) {
+ if (medal == null) return "0";
+ return String.valueOf(medals[medal.ordinal()]);
+ }
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java
new file mode 100644
index 000000000..db71fab5d
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java
@@ -0,0 +1,28 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent;
+//import java.util.Arrays;
+//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+//
+//public class FarmingIslandHandler {
+//
+// public static Locations location = Locations.NONE;
+// public static int pelts;
+//
+// @SubscribeEvent
+// public void onSidebarPost(SidebarPostEvent event) {
+// boolean isTracking = Arrays.toString(event.arrayScores).toLowerCase().contains("tracker mob location:");
+// if (isTracking && location == Locations.NONE) {
+// for (int i = 0; i < event.scores.size(); i++) {
+// String line = event.scores.get(i);
+// if (line.toLowerCase().contains("tracker mob location:") && i > 2) {
+// location = Locations.get(event.scores.get(i - 1).toLowerCase());
+// break;
+// }
+// }
+// }
+// if (!isTracking && location != Locations.NONE) {
+// location = Locations.NONE;
+// }
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java
new file mode 100644
index 000000000..d0a4d0eb1
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java
@@ -0,0 +1,67 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//import com.thatgravyboat.skyblockhud.api.events.ProfileSwitchedEvent;
+//import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+//import com.thatgravyboat.skyblockhud.utils.Utils;
+//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+//
+//public class IslandHandler {
+//
+// public static int flightTime;
+// public static boolean hadFlightTime;
+//
+// public static int redstone;
+// public static boolean hadRedstone;
+//
+// @SubscribeEvent
+// public void onSidebarLineUpdate(SidebarLineUpdateEvent event) {
+// hadFlightTime = checkFlightDuration(event.formattedLine);
+// hadRedstone = checkRestone(event.formattedLine);
+// }
+//
+// @SubscribeEvent
+// public void onProfileSwitch(ProfileSwitchedEvent event) {
+// flightTime = 0;
+// }
+//
+// public static boolean checkFlightDuration(String formatedScoreboardLine) {
+// if (LocationHandler.getCurrentLocation() == Locations.YOURISLAND && Utils.removeColor(formatedScoreboardLine.toLowerCase().trim()).contains("flight duration:")) {
+// String timeString = formatedScoreboardLine.toLowerCase().replace("flight duration:", "").replace(" ", "");
+// String[] times = timeString.split(":");
+// if (times.length == 2) {
+// int s = 0;
+// try {
+// s += Integer.parseInt(times[0]) * 60;
+// } catch (NumberFormatException ignored) {}
+// try {
+// s += Integer.parseInt(times[1]);
+// } catch (NumberFormatException ignored) {}
+// flightTime = s - 1;
+// } else if (times.length == 3) {
+// int s = 0;
+// try {
+// s += Integer.parseInt(times[0]) * 3600;
+// } catch (NumberFormatException ignored) {}
+// try {
+// s += Integer.parseInt(times[1]) * 60;
+// } catch (NumberFormatException ignored) {}
+// try {
+// s += Integer.parseInt(times[2]);
+// } catch (NumberFormatException ignored) {}
+// flightTime = s - 1;
+// }
+// return true;
+// }
+// return false;
+// }
+//
+// public static boolean checkRestone(String formatedScoreboardLine) {
+// if (LocationHandler.getCurrentLocation() == Locations.YOURISLAND) {
+// if (formatedScoreboardLine.toLowerCase().contains("redstone:")) return true;
+// try {
+// redstone = formatedScoreboardLine.toLowerCase().contains("redstone:") ? Integer.parseInt(Utils.removeWhiteSpaceAndRemoveWord(formatedScoreboardLine, "redstone:")) : 0;
+// } catch (Exception ignored) {}
+// }
+// return false;
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java
new file mode 100644
index 000000000..de5c1d223
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java
@@ -0,0 +1,54 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//import static com.thatgravyboat.skyblockhud.handlers.MapHandler.Maps;
+//
+//import at.lorenz.mod.LorenzMod;
+//import com.thatgravyboat.skyblockhud.handlers.MapHandler;
+//
+//public enum LocationCategory {
+// ERROR("error", 34),
+// ISLAND("island", 43),
+// HUB("hub", 34, Maps.HUB),
+// BARN("barn", 67, Maps.BARN),
+// MUSHROOMDESERT("mushroomdesert", 75, Maps.MUSHROOM),
+// GOLDMINE("gold_mine", 83),
+// DEEPCAVERNS("deepcaverns", 91),
+// SPIDERSDEN("spiders_den", 99, Maps.SPIDERS),
+// PARK("park", 51, Maps.PARK),
+// FORTRESS("fortress", 107, Maps.NETHER),
+// DUNGEONHUB("dungeonhub", 115),
+// JERRY("jerry", 59),
+// THEEND("the_end", 123),
+// DWARVENMINES("dwarven_mines", 131, Maps.DWARVEN),
+// CRYSTALHOLLOWS("crystal_hollows", 139, Maps.CRYSTAL);
+//
+// private final String name;
+// private final int texturePos;
+// private final MapHandler.Maps map;
+//
+// LocationCategory(String name, int texturePos) {
+// this(name, texturePos, null);
+// }
+//
+// LocationCategory(String name, int texturePos, MapHandler.Maps map) {
+// this.name = name;
+// this.texturePos = texturePos;
+// this.map = map;
+// }
+//
+// public String getName() {
+// return this.name;
+// }
+//
+// public int getTexturePos() {
+// return this.texturePos;
+// }
+//
+// public MapHandler.Maps getMap() {
+// if (this.map != null && LorenzMod.config.map.mapLocations.contains(this.ordinal() - 2)) return this.map; else return null;
+// }
+//
+// public boolean isMiningCategory() {
+// return this == LocationCategory.DWARVENMINES || this == LocationCategory.CRYSTALHOLLOWS;
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java
new file mode 100644
index 000000000..292429571
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java
@@ -0,0 +1,44 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//import com.thatgravyboat.skyblockhud.api.events.LocationChangeEvent;
+//import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+//import java.util.Locale;
+//import net.minecraftforge.common.MinecraftForge;
+//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+//
+//public class LocationHandler {
+//
+// private static Locations currentLocation = Locations.NONE;
+//
+// @SubscribeEvent
+// public void onSidebarLineUpdate(SidebarLineUpdateEvent event) {
+// if (event.rawLine.contains("\u23E3")) {
+// String objectiveName = event.objective.getDisplayName().replaceAll("(?i)\\u00A7.", "");
+// if (objectiveName.toLowerCase(Locale.ENGLISH).endsWith("guest")) {
+// LocationHandler.setCurrentLocation(Locations.GUESTISLAND);
+// } else {
+// LocationHandler.handleLocation(event.formattedLine);
+// }
+// }
+// }
+//
+// public static void setCurrentLocation(Locations location) {
+// currentLocation = location;
+// }
+//
+// public static Locations getCurrentLocation() {
+// return currentLocation;
+// }
+//
+// public static void handleLocation(String locationLine) {
+// String location = locationLine.replace(" ", "").toUpperCase(Locale.ENGLISH).trim();
+// if (location.startsWith("THECATACOMBS")) {
+// MinecraftForge.EVENT_BUS.post(new LocationChangeEvent(currentLocation, Locations.CATACOMBS));
+// currentLocation = Locations.CATACOMBS;
+// } else {
+// Locations locations = Locations.get(location.replaceAll("[^A-Za-z0-9]", ""));
+// MinecraftForge.EVENT_BUS.post(new LocationChangeEvent(currentLocation, locations));
+// currentLocation = locations;
+// }
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java
new file mode 100644
index 000000000..1f5fce003
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java
@@ -0,0 +1,161 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//public enum Locations {
+// //ERROR LOCATIONS
+// DEFAULT("unknown", "Error", LocationCategory.ERROR),
+// NONE("none", "Unknown", LocationCategory.ERROR),
+// //ISLAND
+// YOURISLAND("yourisland", "Your Island", LocationCategory.ISLAND),
+// GUESTISLAND("guestisland", "Guest Island", LocationCategory.ISLAND),
+// MOULBERRYSISLAND("moulberryisland", "Cool Dude Hub", LocationCategory.ISLAND),
+// //HUB
+// VILLAGE("village", "Village", LocationCategory.HUB),
+// AUCTIONHOUSE("auctionhouse", "Auction House", LocationCategory.HUB),
+// BAZAARALLEY("bazaaralley", "Bazaar Alley", LocationCategory.HUB),
+// BANK("bank", "Bank", LocationCategory.HUB),
+// FASHIONSHOP("fashionshop", "Fashion Shop", LocationCategory.HUB),
+// COLOSSEUM("colosseum", "Colosseum", LocationCategory.HUB),
+// COLOSSEUMARENA("colosseumarena", "Colosseum Arena", LocationCategory.HUB),
+// MOUNTAIN("mountain", "Mountain", LocationCategory.HUB),
+// HIGHLEVEL("highlevel", "High Level", LocationCategory.HUB),
+// WILDERNESS("wilderness", "Wilderness", LocationCategory.HUB),
+// FISHERMANSHUT("fishermanshut", "Fisherman's Hut", LocationCategory.HUB),
+// FLOWERHOUSE("flowerhouse", "Flower House", LocationCategory.HUB),
+// CANVASROOM("canvasroom", "Canvas Room", LocationCategory.HUB),
+// TAVERN("tavern", "Tavern", LocationCategory.HUB),
+// FOREST("forest", "Forest", LocationCategory.HUB),
+// RUINS("ruins", "Ruins", LocationCategory.HUB),
+// GRAVEYARD("graveyard", "Graveyard", LocationCategory.HUB),
+// COALMINE("coalmine", "Coal Mine", LocationCategory.HUB),
+// FARM("farm", "Farm", LocationCategory.HUB),
+// LIBRARY("library", "Library", LocationCategory.HUB),
+// COMMUNITYCENTER("communitycenter", "Community Center", LocationCategory.HUB),
+// ELECTIONROOM("electionroom", "Election Room", LocationCategory.HUB),
+// BUILDERSHOUSE("buildershouse", "Builder's House", LocationCategory.HUB),
+// BLACKSMITH("blacksmith", "Blacksmith", LocationCategory.HUB),
+// FARMHOUSE("farmhouse", "Farmhouse", LocationCategory.HUB),
+// WIZARDTOWER("wizardtower", "Wizard Tower", LocationCategory.HUB),
+// //THE BARN
+// THEBARN("thebarn", "The Barn", LocationCategory.BARN),
+// WINDMILL("windmill", "Windmill", LocationCategory.BARN),
+// //MUSHROOM DESERT
+// MUSHROOMDESERT("mushroomdesert", "Mushroom Desert", LocationCategory.MUSHROOMDESERT),
+// DESERTSETTLEMENT("desertsettlement", "Desert Settlement", LocationCategory.MUSHROOMDESERT),
+// OASIS("oasis", "Oasis", LocationCategory.MUSHROOMDESERT),
+// MUSHROOMGORGE("mushroomgorge", "Mushroom Gorge", LocationCategory.MUSHROOMDESERT),
+// SHEPHERDSKEEP("shepherdskeep", "Shepherds Keep", LocationCategory.MUSHROOMDESERT),
+// JAKESHOUSE("jakeshouse", "Jake's House", LocationCategory.MUSHROOMDESERT),
+// TREASUREHUNTERCAMP("treasurehuntercamp", "Treasure Hunter Camp", LocationCategory.MUSHROOMDESERT),
+// GLOWINGMUSHROOMCAVE("glowingmushroomcave", "Glowing Mushroom Cave", LocationCategory.MUSHROOMDESERT),
+// TRAPPERSDEN("trappersden", "Trappers Den", LocationCategory.MUSHROOMDESERT),
+// OVERGROWNMUSHROOMCAVE("overgrownmushroomcave", "Overgrown Mushroom Cave", LocationCategory.MUSHROOMDESERT),
+// //GOLD MINE
+// GOLDMINE("goldmine", "Gold Mine", LocationCategory.GOLDMINE),
+// //DEEP CAVERNS
+// DEEPCAVERNS("deepcaverns", "Deep Caverns", LocationCategory.DEEPCAVERNS),
+// GUNPOWDERMINES("gunpowdermines", "Gunpowder Mines", LocationCategory.DEEPCAVERNS),
+// LAPISQUARRY("lapisquarry", "Lapis Quarry", LocationCategory.DEEPCAVERNS),
+// PIGMENSDEN("pigmensden", "Pigmen's Den", LocationCategory.DEEPCAVERNS),
+// SLIMEHILL("slimehill", "Slimehill", LocationCategory.DEEPCAVERNS),
+// DIAMONDRESERVE("diamondreserve", "Diamond Reserve", LocationCategory.DEEPCAVERNS),
+// OBSIDIANSANCTUARY("obsidiansanctuary", "Obsidian Sanctuary", LocationCategory.DEEPCAVERNS),
+// //SPIDERS DEN
+// SPIDERSDEN("spidersden", "Spider's Den", LocationCategory.SPIDERSDEN),
+//
+// //THE END
+// THEEND("theend", "The End", LocationCategory.THEEND),
+// DRAGONSNEST("dragonsnest", "Dragon's Nest", LocationCategory.THEEND),
+// VOIDSEPULTURE("voidsepulture", "Void Sepulture", LocationCategory.THEEND),
+// //PARK
+// HOWLINGCAVE("howlingcave", "Howling Cave", LocationCategory.PARK),
+// BIRCHPARK("birchpark", "Birch Park", LocationCategory.PARK),
+// SPRUCEWOODS("sprucewoods", "Spruce Woods", LocationCategory.PARK),
+// DARKTHICKET("darkthicket", "Dark Thicket", LocationCategory.PARK),
+// SAVANNAWOODLAND("savannawoodland", "Savanna Woodland", LocationCategory.PARK),
+// JUNGLEISLAND("jungleisland", "Jungle Island", LocationCategory.PARK),
+// //BLAZING FORTRESS
+// BLAZINGFORTRESS("blazingfortress", "Blazing Fortress", LocationCategory.FORTRESS),
+// //DUNGEONS
+// DUNGEONHUB("dungeonhub", "Dungeon Hub", LocationCategory.DUNGEONHUB),
+// CATACOMBS("catacombs", "The Catacombs", LocationCategory.DUNGEONHUB),
+// CATACOMBSENTRANCE("catacombsentrance", "Catacombs Entrance", LocationCategory.DUNGEONHUB),
+// //JERRYISLAND
+// JERRYSWORKSHOP("jerrysworkshop", "Jerry's Workshop", LocationCategory.JERRY),
+// JERRYPOND("jerrypond", "Jerry Pond", LocationCategory.JERRY),
+// //DWARVENMINES
+// THELIFT("thelift", "The Lift", LocationCategory.DWARVENMINES),
+// DWARVENVILLAGE("dwarvenvillage", "Dwarven Village", LocationCategory.DWARVENMINES),
+// DWARVENMINES("dwarvenmines", "Dwarven Mines", LocationCategory.DWARVENMINES),
+// DWARVENTAVERN("dwarvemtavern", "Dwarven Tavern", LocationCategory.DWARVENMINES),
+// LAVASPRINGS("lavasprings", "Lava Springs", LocationCategory.DWARVENMINES),
+// PALACEBRIDGE("palacebridge", "Palace Bridge", LocationCategory.DWARVENMINES),
+// ROYALPALACE("royalpalace", "Royal Palace", LocationCategory.DWARVENMINES),
+// GRANDLIBRARY("grandlibrary", "Grand Library", LocationCategory.DWARVENMINES),
+// ROYALQUARTERS("royalquarters", "Royal Quarters", LocationCategory.DWARVENMINES),
+// BARRACKSOFHEROES("barracksofheroes", "Barracks of Heroes", LocationCategory.DWARVENMINES),
+// HANGINGCOURT("hangingcourt", "Hanging Court", LocationCategory.DWARVENMINES),
+// GREATICEWALL("greaticewall", "Great Ice Wall", LocationCategory.DWARVENMINES),
+// GOBLINBURROWS("goblinburrows", "Goblin Burrows", LocationCategory.DWARVENMINES),
+// FARRESERVE("farreserve", "Far Reserve", LocationCategory.DWARVENMINES),
+// CCMINECARTSCO("ccminecartco", "Minecart Co.", LocationCategory.DWARVENMINES),
+// UPPERMINES("uppermines", "Upper Mines", LocationCategory.DWARVENMINES),
+// RAMPARTSQUARRY("rampartsquarry", "Ramparts Quarry", LocationCategory.DWARVENMINES),
+// GATESTOTHEMINES("gatestothemines", "Gates to The Mines", LocationCategory.DWARVENMINES),
+// FORGEBASIN("forgebasin", "Forge Basin", LocationCategory.DWARVENMINES),
+// THEFORGE("theforge", "The Forge", LocationCategory.DWARVENMINES),
+// CLIFFSIDEVEINS("cliffsideveins", "Cliffside Veins", LocationCategory.DWARVENMINES),
+// DIVANSGATEWAY("divansgateway", "Divan's Gateway", LocationCategory.DWARVENMINES),
+// THEMIST("themist", "The Mist", LocationCategory.DWARVENMINES),
+// ROYALMINES("royalmines", "Royal Mines", LocationCategory.DWARVENMINES),
+// ARISTOCRATPASSAGE("aristocratpassage", "Aristocrat Passage", LocationCategory.DWARVENMINES),
+// MINERSGUILD("minersguild", "Miner's Guild", LocationCategory.DWARVENMINES),
+// //CRYSTALHOLLOWS
+// JUNGLE("jungle", "Jungle", LocationCategory.CRYSTALHOLLOWS),
+// JUNGLETEMPLE("jungletemple", "Jungle Temple", LocationCategory.CRYSTALHOLLOWS),
+// MITHRILDEPOSITS("mithrildeposits", "Mithril Deposits", LocationCategory.CRYSTALHOLLOWS),
+// MINESOFDIVAN("minesofdivan", "Mines of Divan", LocationCategory.CRYSTALHOLLOWS),
+// MAGMAFIELDS("magmafields", "Magma Fields", LocationCategory.CRYSTALHOLLOWS),
+// KHAZADDM("khzaddm", "Khazad-d\u00FBm", LocationCategory.CRYSTALHOLLOWS),
+// GOBLINHOLDOUT("goblinholdout", "Goblin Holdout", LocationCategory.CRYSTALHOLLOWS),
+// GOBLINQUEENSDEN("goblinqueensden", "Goblin Queens Den", LocationCategory.CRYSTALHOLLOWS),
+// PRECURSORREMNANTS("precursorremnants", "Precursor Remnants", LocationCategory.CRYSTALHOLLOWS),
+// LOSTPRECURSORCITY("lostprecursorcity", "Lost Precursor City", LocationCategory.CRYSTALHOLLOWS),
+// CRYSTALNUCLEUS("crystalnucleus", "Crystal Nucleus", LocationCategory.CRYSTALHOLLOWS),
+// CRYSTALHOLLOWS("crystalhollows", "Crystal Hollows", LocationCategory.CRYSTALHOLLOWS),
+// FAIRYGROTTO("fairygrotto", "Fairy Grotto", LocationCategory.CRYSTALHOLLOWS);
+//
+// private final String name;
+// private final String displayName;
+// private final LocationCategory category;
+//
+// Locations(String name, String displayName, LocationCategory category) {
+// this.name = name;
+// this.displayName = displayName;
+// this.category = category;
+// }
+//
+// public String getName() {
+// return this.name;
+// }
+//
+// public String getDisplayName() {
+// return this.displayName;
+// }
+//
+// public LocationCategory getCategory() {
+// return this.category;
+// }
+//
+// public static Locations get(String id) {
+// try {
+// return Locations.valueOf(id.replace(" ", "").toUpperCase());
+// } catch (IllegalArgumentException ex) {
+// return DEFAULT;
+// }
+// }
+//
+// @Override
+// public String toString() {
+// return this.name;
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java
new file mode 100644
index 000000000..b9c7657bc
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java
@@ -0,0 +1,192 @@
+//package com.thatgravyboat.skyblockhud.location;
+//
+//import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+//import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent;
+//import com.thatgravyboat.skyblockhud.overlay.MiningHud;
+//import com.thatgravyboat.skyblockhud.utils.Utils;
+//import java.lang.ref.WeakReference;
+//import java.math.RoundingMode;
+//import java.text.DecimalFormat;
+//import java.text.DecimalFormatSymbols;
+//import java.util.Arrays;
+//import java.util.Locale;
+//import net.minecraft.item.ItemStack;
+//import net.minecraft.nbt.NBTTagCompound;
+//import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+//
+//public class MinesHandler {
+//
+// public enum Event {
+// NONE(0, "Unknown", false, false),
+// TICKET(107, "Raffle", true, true),
+// GOBLIN(99, "Goblin Raid", true, true),
+// WIND(0, "Gone With The Wind", false, false),
+// TOGETHER(171, "Better Together", false, true);
+//
+// public int x;
+// public String displayName;
+// public boolean needsMax;
+// public boolean display;
+//
+// Event(int x, String displayName, boolean needsMax, boolean display) {
+// this.x = x;
+// this.displayName = displayName;
+// this.needsMax = needsMax;
+// this.display = display;
+// }
+// }
+//
+// public static int mithril;
+// public static int gemstone;
+//
+// public static int eventMax;
+// public static int eventProgress;
+// public static Event currentEvent;
+//
+// private static final DecimalFormat NORMAL_FORMATTER = new DecimalFormat("#,###", DecimalFormatSymbols.getInstance(Locale.CANADA));
+// private static final DecimalFormat SHORT_FORMATTER = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance(Locale.CANADA));
+//
+// static {
+// SHORT_FORMATTER.setRoundingMode(RoundingMode.FLOOR);
+// }
+//
+// public static String getMithrilFormatted() {
+// String output = NORMAL_FORMATTER.format(mithril);
+// if (output.equals(".0")) output = "0.0"; else if (output.equals(",0")) output = "0,0";
+// return output;
+// }
+//
+// public static String getMithrilShortFormatted() {
+// return mithril > 999 ? SHORT_FORMATTER.format((double) mithril / 1000) + "k" : String.valueOf(mithril);
+// }
+//
+// public static String getGemstoneFormatted() {
+// String output = NORMAL_FORMATTER.format(gemstone);
+// if (output.equals(".0")) output = "0.0"; else if (output.equals(",0")) output = "0,0";
+// return output;
+// }
+//
+// public static String getGemstoneShortFormatted() {
+// return gemstone > 999 ? SHORT_FORMATTER.format((double) gemstone / 1000) + "k" : String.valueOf(gemstone);
+// }
+//
+// public static void parseMithril(String line) {
+// try {
+// mithril = Integer.parseInt(line.toLowerCase().replace("mithril powder:", "").trim());
+// } catch (Exception ignored) {}
+// }
+//
+// public static void parseGemstone(String line) {
+// try {
+// gemstone = Integer.parseInt(line.toLowerCase().replace("gemstone powder:", "").trim());
+// } catch (Exception ignored) {}
+// }
+//
+// @SubscribeEvent
+// public void onSidebarLineUpdate(SidebarLineUpdateEvent event) {
+// if (event.formattedLine.toLowerCase().contains("heat")) {
+// try {
+// MiningHud.setHeat(Integer.parseInt(event.formattedLine.toLowerCase().replace("heat:", "").trim()));
+// } catch (Exception ignored) {}
+// }
+// if (event.formattedLine.toLowerCase().contains("mithril")) {
+// try {
+// mithril = Integer.parseInt(event.formattedLine.toLowerCase().replace("mithril:", "").trim());
+// } catch (Exception ignored) {}
+// }
+// if (event.formattedLine.toLowerCase().contains("gemstone")) {
+// try {
+// gemstone = Integer.parseInt(event.formattedLine.toLowerCase().replace("gemstone:", "").trim());
+// } catch (Exception ignored) {}
+// }
+// if (event.formattedLine.toLowerCase().contains("event")) {
+// if (event.formattedLine.toLowerCase().contains("raffle")) {
+// MinesHandler.currentEvent = Event.TICKET;
+// } else if (event.formattedLine.toLowerCase().contains("goblin raid")) {
+// MinesHandler.currentEvent = Event.GOBLIN;
+// }
+// }
+// if (event.formattedLine.equalsIgnoreCase("wind compass")) {
+// MinesHandler.currentEvent = Event.WIND;
+// }
+// if (event.formattedLine.toLowerCase(Locale.ENGLISH).contains("nearby players")) {
+// MinesHandler.currentEvent = Event.TOGETHER;
+// try {
+// MinesHandler.eventProgress = Integer.parseInt(event.formattedLine.toLowerCase().replace("nearby players:", "").trim());
+// } catch (Exception ignored) {}
+// }
+//
+// if (MinesHandler.currentEvent != Event.NONE) {
+// if (MinesHandler.currentEvent == Event.TICKET) {
+// if (event.formattedLine.toLowerCase().contains("pool:")) {
+// try {
+// eventMax = Integer.parseInt(event.formattedLine.toLowerCase().replace("pool:", "").trim().split("/")[0].trim());
+// } catch (Exception ignored) {}
+// } else if (event.formattedLine.toLowerCase().contains("tickets:")) {
+// try {
+// eventProgress = Integer.parseInt(event.formattedLine.toLowerCase().replace("tickets:", "").split("\\(")[0].trim());
+// } catch (Exception ignored) {}
+// }
+// } else if (MinesHandler.currentEvent == Event.GOBLIN) {
+// if (event.formattedLine.toLowerCase().contains("remaining:")) {
+// try {
+// eventMax = Integer.parseInt(event.formattedLine.toLowerCase().replace("goblins", "").replace("remaining:", "").trim());
+// } catch (Exception ignored) {}
+// } else if (event.formattedLine.toLowerCase().contains("your kills:") && !event.formattedLine.toLowerCase().contains("(")) {
+// try {
+// eventProgress = Integer.parseInt(event.formattedLine.toLowerCase().replace("your kills:", "").trim());
+// } catch (Exception ignored) {}
+// }
+// }
+// }
+// }
+//
+// @SubscribeEvent
+// public void onSidebarPost(SidebarPostEvent event) {
+// String arrayString = Arrays.toString(event.arrayScores);
+// boolean hasEvent = arrayString.toLowerCase().contains("event:");
+// boolean hasWind = arrayString.toLowerCase().contains("wind compass");
+// boolean hasNearbyPlayers = arrayString.toLowerCase().contains("nearby players");
+//
+// if (!hasEvent && !hasWind && !hasNearbyPlayers) {
+// MinesHandler.currentEvent = Event.NONE;
+// MinesHandler.eventProgress = 0;
+// MinesHandler.eventMax = 0;
+// }
+// if (!arrayString.toLowerCase().contains("heat:")) {
+// MiningHud.setHeat(0);
+// }
+// }
+//
+// public static WeakReference<PrehistoricEggProgress> getEggColorAndProgress(ItemStack stack) {
+// String id = Utils.getItemCustomId(stack);
+// if (id == null || !id.equals("PREHISTORIC_EGG")) return null;
+// NBTTagCompound extraAttributes = stack.getTagCompound().getCompoundTag("ExtraAttributes");
+// if (!extraAttributes.hasKey("blocks_walked")) return null;
+// PrehistoricEggProgress progress = new PrehistoricEggProgress();
+// int walked = extraAttributes.getInteger("blocks_walked");
+// if (walked < 4000) {
+// progress.currentColor = 0xffffff;
+// progress.progress = walked / 4000f;
+// } else if (walked < 10000) {
+// progress.currentColor = 0x55FF55;
+// progress.progress = (walked - 4000f) / 6000f;
+// } else if (walked < 20000) {
+// progress.currentColor = 0x5555FF;
+// progress.progress = (walked - 10000f) / 10000f;
+// } else if (walked < 40000) {
+// progress.currentColor = 0xAA00AA;
+// progress.progress = (walked - 20000f) / 20000f;
+// } else if (walked < 100000) {
+// progress.currentColor = 0xFFAA00;
+// progress.progress = (walked - 40000f) / 60000f;
+// }
+// return new WeakReference<>(progress);
+// }
+//
+// public static class PrehistoricEggProgress {
+//
+// public float progress;
+// public int currentColor;
+// }
+//}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java
new file mode 100644
index 000000000..312eb3274
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java
@@ -0,0 +1,29 @@
+package com.thatgravyboat.skyblockhud_2.location;
+
+import javax.annotation.Nullable;
+
+public class ParkIslandHandler {
+
+ private static boolean isRaining = false;
+ private static String rainTime = "";
+
+ public static void parseRain(@Nullable String tabLine) {
+ if (tabLine == null) {
+ isRaining = false;
+ rainTime = "";
+ } else if (tabLine.toLowerCase().contains("rain:")) {
+ if (tabLine.toLowerCase().contains("no rain")) isRaining = false; else {
+ rainTime = tabLine.toLowerCase().replace("rain:", "").replace(" ", "");
+ isRaining = true;
+ }
+ }
+ }
+
+ public static String getRainTime() {
+ return rainTime;
+ }
+
+ public static boolean isRaining() {
+ return isRaining;
+ }
+}