diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java | 9 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java | 6 |
2 files changed, 8 insertions, 7 deletions
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 34e9864c..c855c3e3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java @@ -1,6 +1,5 @@ package de.hysky.skyblocker.skyblock.garden; -import com.mojang.authlib.properties.Property; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; import de.hysky.skyblocker.utils.ItemUtils; @@ -18,7 +17,6 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.component.DataComponentTypes; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; @@ -121,9 +119,8 @@ public class VisitorHelper { try { int amount = splitItemText.length == 2 ? NumberFormat.getInstance(Locale.US).parse(splitItemText[1].trim()).intValue() : 1; Pair<String, String> key = Pair.of(visitorName, visitorTexture); - Object2IntMap<String> visitorMap = itemMap.getOrDefault(key, new Object2IntOpenHashMap<>()); - visitorMap.putIfAbsent(itemName, amount); - itemMap.putIfAbsent(key, visitorMap); + Object2IntMap<String> visitorMap = itemMap.computeIfAbsent(key, _key -> new Object2IntOpenHashMap<>()); + visitorMap.put(itemName, amount); } catch (Exception e) { LOGGER.error("[Skyblocker Visitor Helper] Failed to parse item: {}", lore.getString(), e); } @@ -157,7 +154,7 @@ public class VisitorHelper { String strippedName = Formatting.strip(displayName); ItemStack cachedStack = itemCache.get(strippedName); if (cachedStack != null) return cachedStack; - if (!ItemRepository.filesImported()) return null; // Item repo might be taking its sweet time doing things and cause concurrent modification error + if (NEURepoManager.isLoading() || !ItemRepository.filesImported()) return null; // Item repo might be taking its sweet time doing things and cause concurrent modification error Map<String, NEUItem> items = NEURepoManager.NEU_REPO.getItems().getItems(); if (items == null) return null; ItemStack stack = items.values().stream() diff --git a/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java b/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java index cda92273..f8716ca4 100644 --- a/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java @@ -51,6 +51,10 @@ public class NEURepoManager { ); } + public static boolean isLoading() { + return REPO_LOADING != null && !REPO_LOADING.isDone(); + } + private static CompletableFuture<Boolean> loadRepository() { return CompletableFuture.supplyAsync(() -> { try { @@ -78,7 +82,7 @@ public class NEURepoManager { } private static void deleteAndDownloadRepository(PlayerEntity player) { - if (REPO_LOADING != null && !REPO_LOADING.isDone()) { + if (isLoading()) { sendMessage(player, Constants.PREFIX.get().append(Text.translatable("skyblocker.updateRepository.loading"))); return; } |