diff options
author | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-06 15:10:29 -0230 |
---|---|---|
committer | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-06 15:10:29 -0230 |
commit | 6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a (patch) | |
tree | 7451e53ceeae3c324d83a7faba83ce80005e6f23 /src/main/java/com/thatgravyboat/skyblockhud/location | |
download | SkyblockHud-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')
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; + } +} |