diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-11 14:08:59 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-23 13:31:48 +0300 |
commit | e2f18c84ce2de2da228ff88b6b67fa5d46945255 (patch) | |
tree | 02625a4bbf8ebb72a19f9f98d43f68603f1ce4e6 /src/main/java/de/hysky/skyblocker/utils | |
parent | 05a18be31a137148bcd446654c550eb2d713990c (diff) | |
download | Skyblocker-e2f18c84ce2de2da228ff88b6b67fa5d46945255.tar.gz Skyblocker-e2f18c84ce2de2da228ff88b6b67fa5d46945255.tar.bz2 Skyblocker-e2f18c84ce2de2da228ff88b6b67fa5d46945255.zip |
Add support for unemployed rabbits
- Refactored ItemUtils.getHeadTexture to use the property iterator instead of streams and return Optional<String> rather than empty string to make the results clear and easier to work with.
- Refactored regex matching logic in ChocolateFactorySolver.getCPSIncreaseFactor to a separate function
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/ItemUtils.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java index 1aa77080..6b850b3b 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java @@ -33,6 +33,7 @@ import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAccessor; +import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Optional; @@ -202,16 +203,16 @@ public class ItemUtils { return Codecs.GAME_PROFILE_PROPERTY_MAP.parse(JsonOps.INSTANCE, JsonParser.parseString("[{\"name\":\"textures\",\"value\":\"" + textureValue + "\"}]")).getOrThrow(); } - public static String getHeadTexture(ItemStack stack) { - if (!stack.isOf(Items.PLAYER_HEAD) || !stack.contains(DataComponentTypes.PROFILE)) return ""; + public static Optional<String> getHeadTexture(ItemStack stack) { + if (!stack.isOf(Items.PLAYER_HEAD) || !stack.contains(DataComponentTypes.PROFILE)) return Optional.empty(); - ProfileComponent profile = stack.get(DataComponentTypes.PROFILE); - String texture = profile.properties().get("textures").stream() - .map(Property::value) - .findFirst() - .orElse(""); + Iterator<Property> iterator = stack.get(DataComponentTypes.PROFILE) + .properties() + .get("textures") + .iterator(); - return texture; + if (!iterator.hasNext()) return Optional.empty(); + return Optional.of(iterator.next().value()); } public static ItemStack getSkyblockerStack() { |