diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-06-20 16:31:47 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-06-20 16:31:47 -0400 |
commit | b9771e13634b7f7c32e46d07fbaa9aecd58a5976 (patch) | |
tree | f6d233e844cee2935a4d8bfc3f06d9da48fb1305 /src | |
parent | a750329670683eabc6701f4fead32c2c9e601915 (diff) | |
download | Skyblocker-b9771e13634b7f7c32e46d07fbaa9aecd58a5976.tar.gz Skyblocker-b9771e13634b7f7c32e46d07fbaa9aecd58a5976.tar.bz2 Skyblocker-b9771e13634b7f7c32e46d07fbaa9aecd58a5976.zip |
Apparently a pet's uuid is an optional field .-.
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/PetCache.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java index 19714e41..d8cd6e48 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java @@ -6,6 +6,7 @@ import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; +import java.util.Optional; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -113,7 +114,7 @@ public class PetCache { Object2ObjectOpenHashMap<String, PetInfo> playerData = CACHED_PETS.computeIfAbsent(Utils.getUndashedUuid(), _uuid -> new Object2ObjectOpenHashMap<>()); //Handle deselecting pets - if (clicked && getCurrentPet() != null && getCurrentPet().uuid().equals(petInfo.uuid())) { + if (clicked && getCurrentPet() != null && getCurrentPet().uuid().orElse("").equals(petInfo.uuid().orElse(""))) { playerData.remove(profileId); } else { playerData.put(profileId, petInfo); @@ -134,12 +135,12 @@ public class PetCache { return CACHED_PETS.containsKey(uuid) && CACHED_PETS.get(uuid).containsKey(profileId) ? CACHED_PETS.get(uuid).get(profileId) : null; } - public record PetInfo(String type, double exp, String tier, String uuid) { + public record PetInfo(String type, double exp, String tier, Optional<String> uuid) { public static final Codec<PetInfo> CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.STRING.fieldOf("type").forGetter(PetInfo::type), Codec.DOUBLE.fieldOf("exp").forGetter(PetInfo::exp), Codec.STRING.fieldOf("tier").forGetter(PetInfo::tier), - Codec.STRING.fieldOf("uuid").forGetter(PetInfo::uuid)) + Codec.STRING.optionalFieldOf("uuid").forGetter(PetInfo::uuid)) .apply(instance, PetInfo::new)); private static final Codec<Object2ObjectOpenHashMap<String, Object2ObjectOpenHashMap<String, PetInfo>>> SERIALIZATION_CODEC = Codec.unboundedMap(Codec.STRING, Codec.unboundedMap(Codec.STRING, CODEC).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new) |