aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-02-27 22:10:11 -0500
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-02-27 22:10:11 -0500
commit0c94ba8455c936cf1e0dc9992d553dee07736e8a (patch)
treeaaf963450a8ddc27489e279017ba9ad60e31ad94
parentecb507502c3278408571e94095e1f9c24c7b2a40 (diff)
downloadSkyblocker-0c94ba8455c936cf1e0dc9992d553dee07736e8a.tar.gz
Skyblocker-0c94ba8455c936cf1e0dc9992d553dee07736e8a.tar.bz2
Skyblocker-0c94ba8455c936cf1e0dc9992d553dee07736e8a.zip
Fix VisitorHelper crash
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java22
1 files changed, 13 insertions, 9 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 4fd9eeb3..92e7e258 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
@@ -21,6 +21,7 @@ import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.text.Text.Serialization;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -139,9 +140,7 @@ public class VisitorHelper {
String itemName = itemEntry.getKey();
int amount = itemEntry.getValue();
ItemStack stack = getCachedItem(itemName);
- if (stack != null) {
- drawItemEntryWithHover(context, textRenderer, stack, amount, index, mouseX, mouseY);
- }
+ drawItemEntryWithHover(context, textRenderer, stack, itemName, amount, index, mouseX, mouseY);
return index + 1;
}
@@ -149,21 +148,26 @@ public class VisitorHelper {
String strippedName = Formatting.strip(displayName);
ItemStack cachedStack = itemCache.get(strippedName);
if (cachedStack != null) return cachedStack;
- NEUItem neuItem = NEURepoManager.NEU_REPO.getItems().getItems().values().stream()
+ Map<String, NEUItem> items = NEURepoManager.NEU_REPO.getItems().getItems();
+ if (items == null) return null;
+ ItemStack stack = items.values().stream()
.filter(i -> Formatting.strip(i.getDisplayName()).equals(strippedName))
.findFirst()
+ .map(NEUItem::getSkyblockItemId)
+ .map(ItemRepository::getItemStack)
.orElse(null);
- if (neuItem == null) return null;
- ItemStack stack = ItemRepository.getItemStack(neuItem.getSkyblockItemId());
+ if (stack == null) return null;
itemCache.put(strippedName, stack);
return stack;
}
- private static void drawItemEntryWithHover(DrawContext context, TextRenderer textRenderer, ItemStack stack, int amount, int index, int mouseX, int mousseY) {
- Text text = Serialization.fromJson(stack.getSubNbt("display").getString("Name")).append(" x" + amount);
+ private static void drawItemEntryWithHover(DrawContext context, TextRenderer textRenderer, @Nullable ItemStack stack, String itemName, int amount, int index, int mouseX, int mousseY) {
+ Text text = stack != null ? Serialization.fromJson(stack.getSubNbt("display").getString("Name")).append(" x" + amount) : Text.literal(itemName + " x" + amount);
drawTextWithOptionalUnderline(context, textRenderer, text, TEXT_START_X + TEXT_INDENT, TEXT_START_Y + (index * (LINE_SPACING + textRenderer.fontHeight)), mouseX, mousseY);
// drawItem adds 150 to the z, which puts our z at 350, above the item in the slot (250) and their text (300) and below the cursor stack (382) and their text (432)
- context.drawItem(stack, TEXT_START_X + TEXT_INDENT + 2 + textRenderer.getWidth(text), TEXT_START_Y + (index * (LINE_SPACING + textRenderer.fontHeight)) - textRenderer.fontHeight + 5);
+ if (stack != null) {
+ context.drawItem(stack, TEXT_START_X + TEXT_INDENT + 2 + textRenderer.getWidth(text), TEXT_START_Y + (index * (LINE_SPACING + textRenderer.fontHeight)) - textRenderer.fontHeight + 5);
+ }
}
private static void drawTextWithOptionalUnderline(DrawContext context, TextRenderer textRenderer, Text text, int x, int y, int mouseX, int mouseY) {