aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/location
diff options
context:
space:
mode:
authorThatGravyBoat <thatgravyboat@gmail.com>2021-07-06 15:10:29 -0230
committerThatGravyBoat <thatgravyboat@gmail.com>2021-07-06 15:10:29 -0230
commit6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a (patch)
tree7451e53ceeae3c324d83a7faba83ce80005e6f23 /src/main/java/com/thatgravyboat/skyblockhud/location
downloadSkyblockHud-Death-Defied-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.tar.gz
SkyblockHud-Death-Defied-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.tar.bz2
SkyblockHud-Death-Defied-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.zip
Initial Commit
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/location')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/DwarvenMineHandler.java97
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/EndIslandHandler.java46
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/FarmingIslandHandler.java29
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/IslandHandler.java62
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/LocationCategory.java46
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java54
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/Locations.java157
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/ParkIslandHandler.java31
8 files changed, 522 insertions, 0 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/DwarvenMineHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/DwarvenMineHandler.java
new file mode 100644
index 0000000..32f6c80
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/DwarvenMineHandler.java
@@ -0,0 +1,97 @@
+package com.thatgravyboat.skyblockhud.location;
+
+import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Arrays;
+import java.util.Locale;
+
+public class DwarvenMineHandler {
+
+ public enum Event {
+ NONE(0, "Unknown"),
+ TICKET(107, "Raffle"),
+ GOBLIN(99, "Goblin Raid");
+
+ public int x;
+ public String displayName;
+
+ Event(int x, String displayName){
+ this.x = x;
+ this.displayName = displayName;
+ }
+ }
+
+ public static int mithril;
+
+ public static int eventMax;
+ public static int eventProgress;
+ public static Event currentEvent;
+
+ private static final DecimalFormat formatter = new DecimalFormat("#,###", DecimalFormatSymbols.getInstance(Locale.CANADA));
+
+ public static String getMithrilFormatted(){
+ String output = formatter.format(mithril);
+ if (output.equals(".0")) output = "0.0";
+ else if (output.equals(",0")) output = "0,0";
+ return output;
+ }
+
+ public static void parseMithril(String line){
+ try{
+ mithril = Integer.parseInt(line.toLowerCase().replace("mithril powder:", "").trim());
+ }catch (Exception ignored){}
+ }
+
+ @SubscribeEvent
+ public void onSidebarLineUpdate(SidebarLineUpdateEvent event){
+ if (event.formattedLine.toLowerCase().contains("mithril")){
+ try{
+ mithril = Integer.parseInt(event.formattedLine.toLowerCase().replace("mithril:","").trim());
+ }catch (Exception ignored){}
+ }
+ if (event.formattedLine.toLowerCase().contains("event")){
+ if (event.formattedLine.toLowerCase().contains("raffle")){
+ DwarvenMineHandler.currentEvent = Event.TICKET;
+ }else if (event.formattedLine.toLowerCase().contains("goblin raid")){
+ DwarvenMineHandler.currentEvent = Event.GOBLIN;
+ }
+ }
+ if (DwarvenMineHandler.currentEvent != Event.NONE){
+ if (DwarvenMineHandler.currentEvent == Event.TICKET && event.formattedLine.toLowerCase().contains("tickets:")){
+ 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 (DwarvenMineHandler.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);
+ if (!arrayString.toLowerCase().contains("event:")){
+ DwarvenMineHandler.currentEvent = Event.NONE;
+ DwarvenMineHandler.eventProgress = 0;
+ DwarvenMineHandler.eventMax = 0;
+ }
+ }
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/EndIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/EndIslandHandler.java
new file mode 100644
index 0000000..e8be465
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/EndIslandHandler.java
@@ -0,0 +1,46 @@
+package com.thatgravyboat.skyblockhud.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/location/FarmingIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/FarmingIslandHandler.java
new file mode 100644
index 0000000..03a698b
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/FarmingIslandHandler.java
@@ -0,0 +1,29 @@
+package com.thatgravyboat.skyblockhud.location;
+
+import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+import java.util.Arrays;
+
+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/location/IslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/IslandHandler.java
new file mode 100644
index 0000000..d6ab81e
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/IslandHandler.java
@@ -0,0 +1,62 @@
+package com.thatgravyboat.skyblockhud.location;
+
+import com.thatgravyboat.skyblockhud.Utils;
+import com.thatgravyboat.skyblockhud.api.events.ProfileSwitchedEvent;
+import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent;
+import com.thatgravyboat.skyblockhud.handlers.CurrencyHandler;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+import java.util.Arrays;
+
+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/location/LocationCategory.java b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationCategory.java
new file mode 100644
index 0000000..817645d
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationCategory.java
@@ -0,0 +1,46 @@
+package com.thatgravyboat.skyblockhud.location;
+
+import com.thatgravyboat.skyblockhud.handlers.MapHandler;
+import static com.thatgravyboat.skyblockhud.handlers.MapHandler.Maps;
+
+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", 131);
+
+
+ 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() { return this.map; }
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java
new file mode 100644
index 0000000..274baf8
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java
@@ -0,0 +1,54 @@
+package com.thatgravyboat.skyblockhud.location;
+
+import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class LocationHandler {
+
+ private static Locations currentLocation = Locations.NONE;
+ private static final List<String> UndocumentedLocations = new ArrayList<>();
+
+
+ @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(String location){
+ currentLocation = Locations.get(location);
+ }
+
+ 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")){
+ currentLocation = Locations.CATACOMBS;
+ }
+ else setCurrentLocation(location.replaceAll("[^A-Za-z0-9]", ""));
+ }
+
+
+ public static void reportUndocumentedLocation(String locationId){
+ if (!UndocumentedLocations.contains(locationId)){
+ UndocumentedLocations.add(locationId);
+ System.out.println("Missing Location value for: " + locationId);
+ }
+ }
+
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/Locations.java b/src/main/java/com/thatgravyboat/skyblockhud/location/Locations.java
new file mode 100644
index 0000000..887ac11
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/Locations.java
@@ -0,0 +1,157 @@
+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),
+ PIGMANSDEN("pigmansden", "Pigman'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),
+ 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),
+ MAMGAFIELDS("magmafields", "Magma Fields", LocationCategory.CRYSTALHOLLOWS),
+ GOBLINHOLDOUT("goblinholdout", "Goblin Holdout", LocationCategory.CRYSTALHOLLOWS),
+ CRYSTALNUCLEUS("crystalnucleus", "Crystal Nucleus", LocationCategory.CRYSTALHOLLOWS),
+ PERCURSORREMNANTS("precursorremnants", "Precursor Remnants", LocationCategory.CRYSTALHOLLOWS),
+ MITHRILDEPOSITS("mithrildeposits", "Mithril Deposits", 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;
+ }
+
+ static public Locations get(String id) {
+ try {
+ return Locations.valueOf(id.replace(" ", "").toUpperCase());
+ } catch (IllegalArgumentException ex) {
+ LocationHandler.reportUndocumentedLocation(id);
+ return DEFAULT;
+ }
+ }
+
+
+ @Override
+ public String toString() {
+ return this.name;
+ }
+}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/ParkIslandHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/ParkIslandHandler.java
new file mode 100644
index 0000000..2a41391
--- /dev/null
+++ b/src/main/java/com/thatgravyboat/skyblockhud/location/ParkIslandHandler.java
@@ -0,0 +1,31 @@
+package com.thatgravyboat.skyblockhud.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;
+ }
+}