aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
authornmccullagh <narhanael64@gmail.com>2024-07-01 01:18:34 +0100
committernmccullagh <narhanael64@gmail.com>2024-07-01 14:03:11 +0100
commit8f11e44052ff41df1477d8c10de3bc1129252ec1 (patch)
tree30fab39f6020e932bbabaa62d9084864596fe5c2 /src/main/java/de/hysky
parent77fbbf665c93c1c5be2aed9b195e335d1eade6d9 (diff)
downloadSkyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.tar.gz
Skyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.tar.bz2
Skyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.zip
lets not assume 1 output
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java19
4 files changed, 32 insertions, 14 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
index d43fe24f..3f2ddc9b 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
@@ -155,12 +155,12 @@ public class GeneralCategory {
newValue -> config.general.itemTooltip.enableBazaarPrice = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.general.itemTooltip.enableCraftingCost"))
+ .option(Option.<GeneralConfig.Craft>createBuilder()
+ .name(Text.translatable("skyblocker.config.general.itemTooltip.craft"))
.binding(defaults.general.itemTooltip.enableCraftingCost,
() -> config.general.itemTooltip.enableCraftingCost,
newValue -> config.general.itemTooltip.enableCraftingCost = newValue)
- .controller(ConfigUtils::createBooleanController)
+ .controller(ConfigUtils::createEnumCyclingListController)
.build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.general.itemTooltip.enableObtainedDate"))
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
index ae891b70..754e15f1 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
@@ -115,7 +115,7 @@ public class GeneralConfig {
public boolean enableBazaarPrice = true;
@SerialEntry
- public boolean enableCraftingCost = false;
+ public Craft enableCraftingCost = Craft.OFF;
@SerialEntry
public boolean enableObtainedDate = true;
@@ -142,6 +142,23 @@ public class GeneralConfig {
}
}
+ public enum Craft {
+ SELL_ORDER, BUY_ORDER, OFF;
+
+ @Override
+ public String toString() {
+ return I18n.translate("skyblocker.config.general.itemTooltip.craft." + name());
+ }
+
+ public String getOrder() {
+ return switch (this) {
+ case SELL_ORDER -> "sellPrice";
+ case BUY_ORDER -> "buyPrice";
+ case OFF -> null;
+ };
+ }
+ }
+
public static class ItemInfoDisplay {
@SerialEntry
public boolean slotText = true;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java
index 1e3b5a7f..dfb97bee 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
public enum TooltipInfoType implements Runnable {
NPC("https://hysky.de/api/npcprice", itemTooltip -> itemTooltip.enableNPCPrice, true),
- BAZAAR("https://hysky.de/api/bazaar", itemTooltip -> itemTooltip.enableBazaarPrice || itemTooltip.enableCraftingCost || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.enableProfitCalculator || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.croesusProfit || SkyblockerConfigManager.get().uiAndVisuals.chestValue.enableChestValue, itemTooltip -> itemTooltip.enableBazaarPrice, false),
+ BAZAAR("https://hysky.de/api/bazaar", itemTooltip -> itemTooltip.enableBazaarPrice || itemTooltip.enableCraftingCost.getOrder() != null || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.enableProfitCalculator || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.croesusProfit || SkyblockerConfigManager.get().uiAndVisuals.chestValue.enableChestValue, itemTooltip -> itemTooltip.enableBazaarPrice, false),
LOWEST_BINS("https://hysky.de/api/auctions/lowestbins", itemTooltip -> itemTooltip.enableLowestBIN || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.enableProfitCalculator || SkyblockerConfigManager.get().dungeons.dungeonChestProfit.croesusProfit || SkyblockerConfigManager.get().uiAndVisuals.chestValue.enableChestValue, itemTooltip -> itemTooltip.enableLowestBIN, false),
ONE_DAY_AVERAGE("https://hysky.de/api/auctions/lowestbins/average/1day.json", itemTooltip -> itemTooltip.enableAvgBIN, false),
THREE_DAY_AVERAGE("https://hysky.de/api/auctions/lowestbins/average/3day.json", itemTooltip -> itemTooltip.enableAvgBIN || SkyblockerConfigManager.get().uiAndVisuals.searchOverlay.enableAuctionHouse, itemTooltip -> itemTooltip.enableAvgBIN, false),
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 32279aa7..35c717ff 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
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.config.configs.GeneralConfig;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
@@ -14,9 +15,9 @@ import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.jetbrains.annotations.Nullable;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
public class CraftPriceTooltip extends TooltipAdder {
private final Map<String, Double> cachedCraftCosts = new HashMap<>();
@@ -28,11 +29,10 @@ public class CraftPriceTooltip extends TooltipAdder {
@Override
public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
- if (!SkyblockerConfigManager.get().general.itemTooltip.enableCraftingCost) return;
+ if (SkyblockerConfigManager.get().general.itemTooltip.enableCraftingCost == GeneralConfig.Craft.OFF) return;
- String neuName = stack.getNeuName();
String internalID = stack.getSkyblockId();
- if (neuName == null || internalID == null) return;
+ if (stack.getNeuName() == null || internalID == null) return;
if (TooltipInfoType.LOWEST_BINS.getData() == null || TooltipInfoType.BAZAAR.getData() == null) {
ItemTooltip.nullWarning();
@@ -43,15 +43,16 @@ public class CraftPriceTooltip extends TooltipAdder {
if (neuItem == null) return;
List<NEURecipe> neuRecipes = neuItem.getRecipes();
- if (neuRecipes.isEmpty()) return;
+ if (neuRecipes.isEmpty() || neuRecipes.getFirst().getClass().equals(io.github.moulberry.repo.data.NEUKatUpgradeRecipe.class)) return;
double totalCraftCost = getItemCost(neuRecipes.getFirst(), 0);
+ cachedCraftCosts.clear();
if (totalCraftCost == 0) return;
- lines.add(Text.literal(String.format("%-18s", "Crafting Cost:"))
- .formatted(Formatting.GOLD)
- .append(ItemTooltip.getCoinsMessage(totalCraftCost, 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()))));
}
private double getItemCost(NEURecipe recipe, int depth) {
@@ -69,7 +70,7 @@ public class CraftPriceTooltip extends TooltipAdder {
double itemCost = 0;
if (TooltipInfoType.BAZAAR.getData().has(inputItemName)) {
- itemCost = TooltipInfoType.BAZAAR.getData().getAsJsonObject(inputItemName).get("sellPrice").getAsDouble();
+ itemCost = TooltipInfoType.BAZAAR.getData().getAsJsonObject(inputItemName).get(SkyblockerConfigManager.get().general.itemTooltip.enableCraftingCost.getOrder()).getAsDouble();
} else if (TooltipInfoType.LOWEST_BINS.getData().has(inputItemName)) {
itemCost = TooltipInfoType.LOWEST_BINS.getData().get(inputItemName).getAsDouble();
}