From 4b477d0efdbb54460c3e58e515450565c350042a Mon Sep 17 00:00:00 2001
From: Rime <81419447+Emirlol@users.noreply.github.com>
Date: Thu, 16 May 2024 14:18:10 +0300
Subject: Revert ItemUtils.getHeadTexture change and add
 ItemUtils.getHeadTextureOptional instead

---
 src/main/java/de/hysky/skyblocker/debug/Debug.java         |  4 +---
 .../skyblocker/skyblock/chocolatefactory/EggFinder.java    |  2 +-
 .../java/de/hysky/skyblocker/skyblock/entity/MobGlow.java  |  2 +-
 .../de/hysky/skyblocker/skyblock/garden/VisitorHelper.java |  4 +++-
 src/main/java/de/hysky/skyblocker/utils/ItemUtils.java     | 14 ++++++++++----
 5 files changed, 16 insertions(+), 10 deletions(-)

(limited to 'src/main')

diff --git a/src/main/java/de/hysky/skyblocker/debug/Debug.java b/src/main/java/de/hysky/skyblocker/debug/Debug.java
index 038e7a5a..d642ca5b 100644
--- a/src/main/java/de/hysky/skyblocker/debug/Debug.java
+++ b/src/main/java/de/hysky/skyblocker/debug/Debug.java
@@ -83,9 +83,7 @@ public class Debug {
 						Iterable<ItemStack> equippedItems = armorStand.getEquippedItems();
 
 						for (ItemStack stack : equippedItems) {
-							ItemUtils.getHeadTexture(stack).ifPresent(texture -> {
-								context.getSource().sendFeedback(Text.of(texture));
-							});
+							ItemUtils.getHeadTextureOptional(stack).ifPresent(texture -> context.getSource().sendFeedback(Text.of(texture)));
 						}
 					}
 
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java
index ee16abd9..2f027f81 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java
@@ -47,7 +47,7 @@ public class EggFinder {
 		if (SkyblockTime.skyblockSeason.get() != SkyblockTime.Season.SPRING) return;
 		if (armorStand.hasCustomName() || !armorStand.isInvisible() || !armorStand.shouldHideBasePlate()) return;
 		for (ItemStack itemStack : armorStand.getArmorItems()) {
-			ItemUtils.getHeadTexture(itemStack).ifPresent(texture -> {
+			ItemUtils.getHeadTextureOptional(itemStack).ifPresent(texture -> {
 				for (EggType type : EggType.entries) {
 					if (texture.equals(type.texture) && type.egg.getValue() == null) {
 						handleFoundEgg(armorStand, type);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
index df9a32c6..d6f9410b 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
@@ -104,7 +104,7 @@ public class MobGlow {
 			// eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3 is texture id for the nukekubi head,
 			// compare against it to exclusively find armorstands that are nukekubi heads
 			// get the texture of the nukekubi head item itself and compare it
-			String texture = ItemUtils.getHeadTexture(armorItem).orElse("");
+			String texture = ItemUtils.getHeadTexture(armorItem);
 
 			return texture.contains("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0=");
 		}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
index 0f349a4f..682933f4 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
@@ -94,7 +94,9 @@ public class VisitorHelper {
     }
 
     private static @Nullable String getTextureOrNull(ItemStack stack) {
-        return ItemUtils.getHeadTexture(stack).orElse(null);
+        String texture = ItemUtils.getHeadTexture(stack);
+
+        return texture.isEmpty() ? null : texture;
     }
 
     private static void processLore(String visitorName, @Nullable String visitorTexture, List<Text> loreList) {
diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
index 6b850b3b..6f98efa6 100644
--- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
@@ -203,16 +203,22 @@ public class ItemUtils {
         return Codecs.GAME_PROFILE_PROPERTY_MAP.parse(JsonOps.INSTANCE, JsonParser.parseString("[{\"name\":\"textures\",\"value\":\"" + textureValue + "\"}]")).getOrThrow();
     }
 
-    public static Optional<String> getHeadTexture(ItemStack stack) {
-        if (!stack.isOf(Items.PLAYER_HEAD) || !stack.contains(DataComponentTypes.PROFILE)) return Optional.empty();
+    public static String getHeadTexture(ItemStack stack) {
+        if (!stack.isOf(Items.PLAYER_HEAD) || !stack.contains(DataComponentTypes.PROFILE)) return "";
 
         Iterator<Property> iterator = stack.get(DataComponentTypes.PROFILE)
                                            .properties()
                                            .get("textures")
                                            .iterator();
 
-        if (!iterator.hasNext()) return Optional.empty();
-        return Optional.of(iterator.next().value());
+        if (!iterator.hasNext()) return "";
+        return iterator.next().value();
+    }
+
+    public static Optional<String> getHeadTextureOptional(ItemStack stack) {
+        String texture = getHeadTexture(stack);
+        if (texture == null) return Optional.empty();
+        return Optional.of(texture);
     }
 
     public static ItemStack getSkyblockerStack() {
-- 
cgit