aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-04-29 22:08:07 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-04-29 22:08:07 -0400
commit42a45265871dda6b25cfab922f15c04ef285493e (patch)
tree61b5d6518a4602a39218f43e53a14f6eff80072d /src/main/java
parent7c0cba3ec25975ef51a9ea604ff308ce98270839 (diff)
downloadSkyblocker-42a45265871dda6b25cfab922f15c04ef285493e.tar.gz
Skyblocker-42a45265871dda6b25cfab922f15c04ef285493e.tar.bz2
Skyblocker-42a45265871dda6b25cfab922f15c04ef285493e.zip
Fix VisitorHelper
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java6
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;
}