diff options
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java')
-rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java index cfbfdc3..40d39d0 100644 --- a/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java +++ b/src/main/java/com/thatgravyboat/skyblockhud/location/LocationHandler.java @@ -2,23 +2,33 @@ 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; +import java.util.Locale; + 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); + public static void handleLocation(String locationLine, boolean isGuesting) { + String location = locationLine.replace(" ", "") + .toUpperCase(Locale.ENGLISH).trim() + .replaceAll("[^A-Za-z0-9]", ""); + if (location.startsWith("THECATACOMBS")) { + MinecraftForge.EVENT_BUS.post(new LocationChangeEvent(currentLocation, Locations.CATACOMBS)); + currentLocation = Locations.CATACOMBS; + } else { + Locations locations; + if (isGuesting && location.endsWith("GARDEN")) { + locations = Locations.GUESTGARDEN; + } else if (isGuesting) { + locations = Locations.GUESTISLAND; } else { - LocationHandler.handleLocation(event.formattedLine); + locations = Locations.get(location); } + MinecraftForge.EVENT_BUS.post(new LocationChangeEvent(currentLocation, locations)); + currentLocation = locations; } } @@ -30,15 +40,12 @@ public class LocationHandler { 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; + @SubscribeEvent + public void onSidebarLineUpdate(SidebarLineUpdateEvent event) { + if (event.rawLine.contains("\u23E3")) { + String objectiveName = event.objective.getDisplayName().replaceAll("(?i)\\u00A7.", ""); + boolean isGuesting = objectiveName.toLowerCase(Locale.ENGLISH).endsWith("guest"); + LocationHandler.handleLocation(event.formattedLine, isGuesting); } } } |