diff options
Diffstat (limited to 'src')
-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) { |