diff options
author | nmccullagh <narhanael64@gmail.com> | 2024-07-05 14:41:37 +0100 |
---|---|---|
committer | nmccullagh <narhanael64@gmail.com> | 2024-07-05 14:41:37 +0100 |
commit | b22cf286d971af6e2c27f4dfcbe6e1829935a5b7 (patch) | |
tree | 78220245875b839b1c80ae142853a39f6b4b4c22 /src/main/java | |
parent | bcfe90d6d22d7dac119e28d77c8e5b27fc1c7a1a (diff) | |
download | Skyblocker-b22cf286d971af6e2c27f4dfcbe6e1829935a5b7.tar.gz Skyblocker-b22cf286d971af6e2c27f4dfcbe6e1829935a5b7.tar.bz2 Skyblocker-b22cf286d971af6e2c27f4dfcbe6e1829935a5b7.zip |
add exception handling for null cases
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java index c19c2f53..f36254f3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java @@ -14,6 +14,8 @@ import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.List; @@ -21,6 +23,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class CraftPriceTooltip extends TooltipAdder { + protected static final Logger LOGGER = LoggerFactory.getLogger(CraftPriceTooltip.class.getName()); private final static Map<String, Double> cachedCraftCosts = new ConcurrentHashMap<>(); private static final int MAX_RECURSION_DEPTH = 15; @@ -46,13 +49,18 @@ public class CraftPriceTooltip extends TooltipAdder { List<NEURecipe> neuRecipes = neuItem.getRecipes(); if (neuRecipes.isEmpty() || neuRecipes.getFirst().getClass().equals(io.github.moulberry.repo.data.NEUKatUpgradeRecipe.class)) return; - double totalCraftCost = getItemCost(neuRecipes.getFirst(), 0); + try { + double totalCraftCost = getItemCost(neuRecipes.getFirst(), 0); - if (totalCraftCost == 0) return; + if (totalCraftCost == 0) return; - neuRecipes.getFirst().getAllOutputs().stream().findFirst().ifPresent(neuIngredient -> - lines.add(Text.literal(String.format("%-20s", "Crafting Price:")).formatted(Formatting.GOLD) - .append(ItemTooltip.getCoinsMessage(totalCraftCost / neuIngredient.getAmount(), stack.getCount())))); + neuRecipes.getFirst().getAllOutputs().stream().findFirst().ifPresent(neuIngredient -> + lines.add(Text.literal(String.format("%-20s", "Crafting Price:")).formatted(Formatting.GOLD) + .append(ItemTooltip.getCoinsMessage(totalCraftCost / neuIngredient.getAmount(), stack.getCount())))); + + } catch (Exception e) { + LOGGER.error("[Skyblocker Craft Price] Error calculating craftprice tooltip for: " + internalID, e); + } } private double getItemCost(NEURecipe recipe, int depth) { |