aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java
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/handlers/WarpHandler.java
parent9e08dbf2baa9819abd281ad285df7462c99491e2 (diff)
downloadskyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.tar.gz
skyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.tar.bz2
skyhanni-4463c7fa78f886a8abc09e867dd17cde2a685ad4.zip
code cleanup
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java179
1 files changed, 0 insertions, 179 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java
deleted file mode 100644
index d92851cb3..000000000
--- a/src/main/java/com/thatgravyboat/skyblockhud/handlers/WarpHandler.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package com.thatgravyboat.skyblockhud.handlers;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.SetMultimap;
-import com.google.gson.*;
-import at.lorenz.mod.LorenzMod;
-import com.thatgravyboat.skyblockhud.api.events.ProfileJoinedEvent;
-import com.thatgravyboat.skyblockhud.api.events.ProfileSwitchedEvent;
-import com.thatgravyboat.skyblockhud.mixins.GuiChestAccessor;
-import com.thatgravyboat.skyblockhud.utils.Utils;
-import java.io.*;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.gui.inventory.GuiChest;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraftforge.client.event.GuiOpenEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-
-public class WarpHandler {
-
- private static String profile = null;
- private static File warpConfig;
- private static final Gson GSON = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create();
- private static final SetMultimap<String, Warp> PLAYER_WARPS = HashMultimap.create();
-
- public static Collection<Warp> getWarps() {
- return PLAYER_WARPS.get(profile);
- }
-
- @SubscribeEvent
- public void profileChange(ProfileSwitchedEvent event) {
- if (profile != null && !profile.equals(event.profile)) {
- load();
- }
- profile = event.profile;
- }
-
- @SubscribeEvent
- public void profileJoined(ProfileJoinedEvent event) {
- if (profile != null && !profile.equals(event.profile)) {
- load();
- }
- profile = event.profile;
- }
-
- @SubscribeEvent
- public void onGuiClosed(GuiOpenEvent event) {
- boolean changed = false;
- GuiScreen currentScreen = Minecraft.getMinecraft().currentScreen;
- if (currentScreen instanceof GuiChest) {
- GuiChestAccessor accessor = (GuiChestAccessor) currentScreen;
- if (accessor.getLowerChestInventory().getDisplayName().getUnformattedText().contains("Fast Travel")) {
- for (int i = 9; i < Math.min(36, accessor.getLowerChestInventory().getSizeInventory()); i++) {
- ItemStack stack = accessor.getLowerChestInventory().getStackInSlot(i);
- if (stack != null && stack.getItem().equals(Items.skull) && stack.getTagCompound().hasKey("display")) {
- NBTTagList lore = stack.getTagCompound().getCompoundTag("display").getTagList("Lore", 8);
-
- String warpLine = Utils.removeColor(lore.getStringTagAt(0)).trim();
-
- if (warpLine.equals("Unknown island!")) continue;
-
- String disabledLine = Utils.removeColor(lore.getStringTagAt(lore.tagCount() - 1)).trim();
-
- Warp warp = Warp.fromId(warpLine.replace("/warp", "").trim());
-
- if (warp != null && !disabledLine.equals("Warp not unlocked!")) {
- if (PLAYER_WARPS.put(profile, warp)) {
- changed = true;
- }
- }
- }
- }
- }
- }
- if (changed) save();
- }
-
- public static void save() {
- JsonObject json = new JsonObject();
- JsonArray array = new JsonArray();
- PLAYER_WARPS
- .asMap()
- .forEach((profile, warps) -> {
- JsonObject profileObject = new JsonObject();
- profileObject.addProperty("profile", profile);
- JsonArray warpArray = new JsonArray();
- warps.forEach(warp -> warpArray.add(new JsonPrimitive(warp.name())));
- profileObject.add("warps", warpArray);
- array.add(profileObject);
- });
- json.add("profileWarps", array);
-
- warpConfig = new File(LorenzMod.configDirectory, "sbh-warps.json");
-
- try {
- warpConfig.createNewFile();
- try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(warpConfig), StandardCharsets.UTF_8))) {
- writer.write(GSON.toJson(json));
- }
- } catch (IOException ignored) {}
- }
-
- public static boolean load() {
- warpConfig = new File(LorenzMod.configDirectory, "sbh-warps.json");
-
- try {
- if (warpConfig.createNewFile()) return true;
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(warpConfig), StandardCharsets.UTF_8))) {
- JsonObject json = GSON.fromJson(reader, JsonObject.class);
- json
- .get("profileWarps")
- .getAsJsonArray()
- .forEach(jsonElement -> {
- JsonObject profileObject = jsonElement.getAsJsonObject();
- List<Warp> warps = new ArrayList<>();
- profileObject
- .get("warps")
- .getAsJsonArray()
- .forEach(warpId -> {
- Warp warp = Warp.safeValueOf(warpId.getAsString());
- if (warp != null) warps.add(warp);
- });
- PLAYER_WARPS.putAll(profileObject.get("profile").getAsString(), warps);
- });
- }
- } catch (Exception ignored) {}
- return false;
- }
-
- public enum Warp {
- HUB("hub"),
- PRIVATE("home"),
- SPIDERSDEN("spider"),
- BLAZINGFORTRESS("nether"),
- THEEND("end"),
- THEPARK("park"),
- GOLDMINE("gold"),
- DEEPCAVERNS("deep"),
- DWARVENMINES("mines"),
- THEBARN("barn"),
- MUSHROOMDESERT("desert"),
- THECASTLE("castle"),
- SIRIUSSHACK("da"),
- GRAVEYARDCAVES("crypt"),
- SPIDERSNEST("nest"),
- MAGMACUBE("magma"),
- DRAGONNEST("drag"),
- JUNGLE("jungle"),
- HOWLINGCAVE("howl"),
- DUNGEONHUB("dungeon_hub");
-
- public String warpId;
-
- Warp(String warpId) {
- this.warpId = warpId;
- }
-
- public static Warp fromId(String id) {
- for (Warp value : Warp.values()) {
- if (value.warpId.equals(id)) return value;
- }
- return null;
- }
-
- public static Warp safeValueOf(String value) {
- try {
- return Warp.valueOf(value);
- } catch (Exception e) {
- return null;
- }
- }
- }
-}