diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-03-04 04:08:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-04 04:08:38 +0000 |
commit | 26cf371c823d36bb289577914b3f52ffd4b924d5 (patch) | |
tree | 455329fe8336773b9f6db017bea6a50ce5bab7f4 /src/main/java/de | |
parent | f282d56b805c1e13d6d21b51caee8901b1d31eab (diff) | |
parent | 0c94ba8455c936cf1e0dc9992d553dee07736e8a (diff) | |
download | Skyblocker-26cf371c823d36bb289577914b3f52ffd4b924d5.tar.gz Skyblocker-26cf371c823d36bb289577914b3f52ffd4b924d5.tar.bz2 Skyblocker-26cf371c823d36bb289577914b3f52ffd4b924d5.zip |
Merge pull request #579 from kevinthegreat1/visitor-helper-crash-fix
Fix VisitorHelper crash
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java | 22 |
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) { |