aboutsummaryrefslogtreecommitdiff
path: root/src
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
parent77fbbf665c93c1c5be2aed9b195e335d1eade6d9 (diff)
downloadSkyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.tar.gz
Skyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.tar.bz2
Skyblocker-8f11e44052ff41df1477d8c10de3bc1129252ec1.zip
lets not assume 1 output
Diffstat (limited to 'src')
-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
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json7
5 files changed, 38 insertions, 15 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();
}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 326be7be..216a6e85 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -226,6 +226,7 @@
"skyblocker.config.general.itemTooltip.avg.BOTH": "Both",
"skyblocker.config.general.itemTooltip.avg.ONE_DAY": "1 day price",
"skyblocker.config.general.itemTooltip.avg.THREE_DAY": "3 day price",
+ "skyblocker.config.general.itemTooltip.avg": "Average Type",
"skyblocker.config.general.itemTooltip.dungeonQuality": "Dungeon Quality",
"skyblocker.config.general.itemTooltip.dungeonQuality.@Tooltip": "Displays quality and tier of dungeon drops from mobs.\n\n\nReminder:\nTier 1-3 dropped from F1-F3\nTier 4-7 dropped from F4-F7 or M1-M4\nTier 8-10 are dropped only from M5-M7",
"skyblocker.config.general.itemTooltip.enableAccessoriesHelper": "Enable Accessories Helper",
@@ -237,7 +238,11 @@
"skyblocker.config.general.itemTooltip.enableAccessoriesHelper.@Tooltip[5]": "You don't own any accessory from this family.",
"skyblocker.config.general.itemTooltip.enableAvgBIN": "Enable Avg. BIN Price",
"skyblocker.config.general.itemTooltip.enableBazaarPrice": "Enable Bazaar buy/sell Price",
- "skyblocker.config.general.itemTooltip.enableCraftingCost": "Enable Crafting Cost",
+ "skyblocker.config.general.itemTooltip.craft": "Crafting Cost",
+ "skyblocker.config.general.itemTooltip.craft.@Tooltip": "You can choose which Bazaar order type to use in crafting calculation",
+ "skyblocker.config.general.itemTooltip.craft.OFF": "Off",
+ "skyblocker.config.general.itemTooltip.craft.SELL_ORDER": "Sell Order",
+ "skyblocker.config.general.itemTooltip.craft.BUY_ORDER": "Buy Order",
"skyblocker.config.general.itemTooltip.enableExoticTooltip": "Enable Exotic Tooltip",
"skyblocker.config.general.itemTooltip.enableExoticTooltip.@Tooltip": "Displays the type of exotic below the item's name if an armor piece is exotic.",
"skyblocker.config.general.itemTooltip.enableLowestBIN": "Enable Lowest BIN Price",