aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-05-11 14:08:59 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-05-23 13:31:48 +0300
commite2f18c84ce2de2da228ff88b6b67fa5d46945255 (patch)
tree02625a4bbf8ebb72a19f9f98d43f68603f1ce4e6 /src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
parent05a18be31a137148bcd446654c550eb2d713990c (diff)
downloadSkyblocker-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/ItemUtils.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ItemUtils.java17
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() {