diff options
5 files changed, 16 insertions, 10 deletions
| 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() { | 
