From 6536f1307c232ad57f96e83f4371a47d6b3fff89 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Fri, 17 Feb 2023 02:11:45 +0100 Subject: Garden: Crop Milestone + Crop Upgrades --- .../java/at/hannibal2/skyhanni/SkyHanniMod.java | 2 + .../hannibal2/skyhanni/config/features/Garden.java | 17 +++++++++ .../features/garden/GardenInventoryNumbers.kt | 44 ++++++++++++++++++++++ .../skyhanni/features/garden/SkyMartBestProfit.kt | 2 +- 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt (limited to 'src/main/java') diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index 3266af83c..a848ab072 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -23,6 +23,7 @@ import at.hannibal2.skyhanni.features.event.diana.GriffinBurrowHelper; import at.hannibal2.skyhanni.features.event.diana.GriffinBurrowParticleFinder; import at.hannibal2.skyhanni.features.event.diana.SoopyGuessBurrow; import at.hannibal2.skyhanni.features.fishing.*; +import at.hannibal2.skyhanni.features.garden.GardenInventoryNumbers; import at.hannibal2.skyhanni.features.garden.GardenVisitorFeatures; import at.hannibal2.skyhanni.features.garden.SkyMartBestProfit; import at.hannibal2.skyhanni.features.inventory.*; @@ -199,6 +200,7 @@ public class SkyHanniMod { loadModule(new MiscFeatures()); loadModule(new SkyMartBestProfit()); loadModule(new GardenVisitorFeatures()); + loadModule(new GardenInventoryNumbers()); Commands.INSTANCE.init(); diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java index d5344900b..139567c97 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java @@ -51,4 +51,21 @@ public class Garden { @ConfigEditorBoolean @ConfigAccordionId(id = 1) public boolean visitorHelperShowPrice = true; + + @Expose + @ConfigOption(name = "Numbers", desc = "") + @ConfigEditorAccordion(id = 2) + public boolean numbers = false; + + @Expose + @ConfigOption(name = "Crop Milestone", desc = "Show the number of the crop milestone in the inventory.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean cropMilestoneNumber = true; + + @Expose + @ConfigOption(name = "Crop Upgrades", desc = "Show the number of upgrades in the crop upgrades inventory.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean cropUpgradesNumber = true; } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt new file mode 100644 index 000000000..95b9b1e9e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.features.garden + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.data.IslandType +import at.hannibal2.skyhanni.events.RenderItemTipEvent +import at.hannibal2.skyhanni.utils.InventoryUtils +import at.hannibal2.skyhanni.utils.ItemUtils.getLore +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.util.regex.Pattern + +class GardenInventoryNumbers { + + private var patternTierProgress = Pattern.compile("§7Progress to Tier (.*): §e(?:.*)") + private var patternUpgradeTier = Pattern.compile("§7Current Tier: §e(.*)§7/§a.*") + + @SubscribeEvent + fun onRenderItemTip(event: RenderItemTipEvent) { + if (!isEnabled()) return + + if (InventoryUtils.openInventoryName() == "Crop Milestones") { + if (!SkyHanniMod.feature.garden.cropMilestoneNumber) return + + event.stack.getLore() + .map { patternTierProgress.matcher(it) } + .filter { it.matches() } + .map { it.group(1).romanToDecimal() - 1 } + .forEach { event.stackTip = "" + it } + } + + if (InventoryUtils.openInventoryName() == "Crop Upgrades") { + if (!SkyHanniMod.feature.garden.cropUpgradesNumber) return + + event.stack.getLore() + .map { patternUpgradeTier.matcher(it) } + .filter { it.matches() } + .map { it.group(1) } + .forEach { event.stackTip = "" + it } + } + } + + private fun isEnabled() = LorenzUtils.inSkyBlock && LorenzUtils.skyBlockIsland == IslandType.GARDEN +} \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt index 369765c5d..ead2f6832 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt @@ -20,6 +20,7 @@ import java.util.regex.Pattern class SkyMartBestProfit { + private val pattern = Pattern.compile("§c(.*) Copper") private val display = mutableListOf() @SubscribeEvent @@ -29,7 +30,6 @@ class SkyMartBestProfit { val inventory = event.inventory if (inventory.title != "SkyMart") return - val pattern = Pattern.compile("§c(.*) Copper") val priceMap = mutableMapOf, Double>() val auctionManager = NotEnoughUpdates.INSTANCE.manager.auctionManager -- cgit