diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-02-17 02:11:45 +0100 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-02-17 02:11:45 +0100 |
commit | 6536f1307c232ad57f96e83f4371a47d6b3fff89 (patch) | |
tree | c490c1aa4797df501a26485aabf820e8dc4debfa | |
parent | 0454b6420983dc37ff6c333adde1ce4aa6c36824 (diff) | |
download | skyhanni-6536f1307c232ad57f96e83f4371a47d6b3fff89.tar.gz skyhanni-6536f1307c232ad57f96e83f4371a47d6b3fff89.tar.bz2 skyhanni-6536f1307c232ad57f96e83f4371a47d6b3fff89.zip |
Garden: Crop Milestone + Crop Upgrades
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | FEATURES.md | 2 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java | 2 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/Garden.java | 17 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt | 44 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt | 2 |
6 files changed, 68 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f39cbcf9..8abfa321e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ + Added **Visitor Display** - Show all items needed for the visitors. + Added **Highlight Ready** - Highlight the visitor when the required items are in the inventory. + Added **Show Price** - Show the bazaar price of the items required for the visitors. ++ Added **Crop Milestone** Number - Show the number of the crop milestone in the inventory. ++ Added **Crop Upgrades** Number - Show the number of upgrades in the crop upgrades inventory. ### Features from other Mods > *The following features are only there because I want them when testing SkyHanni features without other mods present.* diff --git a/FEATURES.md b/FEATURES.md index c21fb1d3d..8cb6670df 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -163,6 +163,8 @@ + **Visitor Display** - Show all items needed for the visitors. + **Highlight Ready** - Highlight the visitor when the required items are in the inventory. + **Show Price** - Show the bazaar price of the items required for the visitors. ++ **Crop Milestone** Number - Show the number of the crop milestone in the inventory. ++ **Crop Upgrades** Number - Show the number of upgrades in the crop upgrades inventory. ## Commands - /wiki (using hypixel-skyblock.fandom.com instead of Hypixel wiki) 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<String>() @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<Pair<String, String>, Double>() val auctionManager = NotEnoughUpdates.INSTANCE.manager.auctionManager |