diff options
Diffstat (limited to 'src/main/java')
5 files changed, 16 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java index c7fa6cb2..e08b3609 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java @@ -134,7 +134,7 @@ public class OtherLocationsCategory { .option(ButtonOption.createBuilder() .name(Text.translatable("skyblocker.config.otherLocations.end.resetName")) .text(Text.translatable("skyblocker.config.otherLocations.end.resetText")) - .action((screen, opt) -> TheEnd.PROFILES_STATS.put(TheEnd.EndStats.EMPTY)) + .action((screen, opt) -> TheEnd.PROFILES_STATS.put(TheEnd.EndStats.EMPTY.get())) .build()) .option(Option.<Boolean>createBuilder() .name(Text.translatable("skyblocker.config.otherLocations.end.muteEndermanSounds")) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java index ddfc892f..7cc24769 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java @@ -68,7 +68,7 @@ public class EndHudWidget extends ComponentBasedWidget { public void updateContent() { // Zealots if (SkyblockerConfigManager.get().otherLocations.end.zealotKillsEnabled) { - TheEnd.EndStats endStats = TheEnd.PROFILES_STATS.putIfAbsent(TheEnd.EndStats.EMPTY); + TheEnd.EndStats endStats = TheEnd.PROFILES_STATS.computeIfAbsent(TheEnd.EndStats.EMPTY); addComponent(new IcoTextComponent(ENDERMAN_HEAD, Text.literal("Zealots").formatted(Formatting.BOLD))); addComponent(new PlainTextComponent(Text.translatable("skyblocker.end.hud.zealotsSinceLastEye", endStats.zealotsSinceLastEye()))); addComponent(new PlainTextComponent(Text.translatable("skyblocker.end.hud.zealotsTotalKills", endStats.totalZealotKills()))); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java index a87ac6d9..689544a7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java @@ -31,7 +31,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.nio.file.Path; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.function.Supplier; public class TheEnd { protected static final Logger LOGGER = LoggerFactory.getLogger(TheEnd.class); @@ -132,7 +136,7 @@ public class TheEnd { public static void onEntityDeath(Entity entity) { if (!(entity instanceof EndermanEntity enderman) || !isZealot(enderman)) return; if (hitZealots.contains(enderman.getUuid())) { - EndStats stats = PROFILES_STATS.putIfAbsent(EndStats.EMPTY); + EndStats stats = PROFILES_STATS.computeIfAbsent(EndStats.EMPTY); if (isSpecialZealot(enderman)) { PROFILES_STATS.put(new EndStats(stats.totalZealotKills() + 1, 0, stats.eyes() + 1)); } else { @@ -172,7 +176,7 @@ public class TheEnd { Codec.INT.fieldOf("zealotsSinceLastEye").forGetter(EndStats::zealotsSinceLastEye), Codec.INT.fieldOf("eyes").forGetter(EndStats::eyes) ).apply(instance, EndStats::new)); - public static final EndStats EMPTY = new EndStats(0, 0, 0); + public static final Supplier<EndStats> EMPTY = () -> new EndStats(0, 0, 0); } public record ProtectorLocation(int x, int z, Text name, Waypoint waypoint) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java index 84ceb82c..554d2584 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/MuseumItemCache.java @@ -84,7 +84,7 @@ public class MuseumItemCache { String profileId = Utils.getProfileId(); if (!itemId.isEmpty() && !profileId.isEmpty()) { - MUSEUM_ITEM_CACHE.putIfAbsent(ProfileMuseumData.EMPTY.get()).collectedItemIds().add(itemId); + MUSEUM_ITEM_CACHE.computeIfAbsent(ProfileMuseumData.EMPTY).collectedItemIds().add(itemId); MUSEUM_ITEM_CACHE.save(); } } diff --git a/src/main/java/de/hysky/skyblocker/utils/profile/ProfiledData.java b/src/main/java/de/hysky/skyblocker/utils/profile/ProfiledData.java index f7afc2f1..4b3ed430 100644 --- a/src/main/java/de/hysky/skyblocker/utils/profile/ProfiledData.java +++ b/src/main/java/de/hysky/skyblocker/utils/profile/ProfiledData.java @@ -131,18 +131,22 @@ public class ProfiledData<T> { return getPlayerData(uuid).get(profileId); } + @Nullable public T put(T value) { return put(Utils.getUuid(), Utils.getProfileId(), value); } + @Nullable public T put(UUID uuid, String profileId, T value) { return getPlayerData(uuid).put(profileId, value); } + @Nullable public T putIfAbsent(T value) { return putIfAbsent(Utils.getUuid(), Utils.getProfileId(), value); } + @Nullable public T putIfAbsent(UUID uuid, String profileId, T value) { return getPlayerData(uuid).putIfAbsent(profileId, value); } @@ -155,10 +159,12 @@ public class ProfiledData<T> { return getPlayerData(uuid).computeIfAbsent(profileId, _profileId -> valueSupplier.get()); } + @Nullable public T remove() { return remove(Utils.getUuid(), Utils.getProfileId()); } + @Nullable public T remove(UUID uuid, String profileId) { return getPlayerData(uuid).remove(profileId); } |
