summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorBrandon <brandon.wamboldt@gmail.com>2023-09-26 05:44:34 -0300
committerGitHub <noreply@github.com>2023-09-26 10:44:34 +0200
commit5963a6555fff757a263e47f2cc8b2e49ae16c6ed (patch)
tree5b2d2220fda5b4045e2e462eec3c80c941939bb4 /src/main/java/at/hannibal2/skyhanni/features/garden
parent768cb23a7fd6aa82af60129f7f3c9d17169f16bd (diff)
downloadskyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.tar.gz
skyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.tar.bz2
skyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.zip
item ability cooldown and ff display improvements #477
* Improve performance for tooltips and item ability cooldown feature
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt25
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt9
2 files changed, 24 insertions, 10 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
index 4a45ed901..033fbb893 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
@@ -9,10 +9,13 @@ import at.hannibal2.skyhanni.events.*
import at.hannibal2.skyhanni.features.garden.CropType.Companion.getTurboCrop
import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType
+import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName_old
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
+import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getEnchantments
@@ -157,14 +160,15 @@ class FarmingFortuneDisplay {
var itemBaseFortune = 0.0
var greenThumbFortune = 0.0
- fun getToolFortune(tool: ItemStack?): Double {
- val internalName = tool?.getInternalName_old() ?: return 0.0
- if (internalName == "THEORETICAL_HOE") {
+ fun getToolFortune(tool: ItemStack?): Double = getToolFortune(tool?.getInternalName())
+ fun getToolFortune(internalName: NEUInternalName?): Double {
+ if (internalName == null) return 0.0
+ if (internalName.equals("THEORETICAL_HOE")) {
return 0.0
}
return if (internalName.startsWith("THEORETICAL_HOE")) {
- listOf(10.0, 25.0, 50.0)[internalName.last().digitToInt() - 1]
- } else when (internalName) {
+ listOf(10.0, 25.0, 50.0)[internalName.toString().last().digitToInt() - 1]
+ } else when (internalName.toString()) {
"FUNGI_CUTTER" -> 30.0
"COCO_CHOPPER" -> 20.0
else -> 0.0
@@ -208,12 +212,18 @@ class FarmingFortuneDisplay {
fun getCultivatingFortune(tool: ItemStack?): Double { return (tool?.getEnchantments()?.get("cultivating") ?: 0) * 2.0}
fun getAbilityFortune(item: ItemStack?): Double {
+ if (item == null) return 0.0
+ return getAbilityFortune(item.getInternalName(), item.getLore())
+ }
+
+ fun getAbilityFortune(internalName: NEUInternalName, lore: List<String>): Double {
val lotusAbilityPattern = "§7Piece Bonus: §6+(?<bonus>.*)☘".toPattern()
// todo make it work on Melon and Cropie armor
val armorAbilityFortune = "§7.*§7Grants §6(?<bonus>.*)☘.*".toPattern()
var pieces = 0
- for (line in item?.getLore()!!) {
- if (item.getInternalName_old().contains("LOTUS")) {
+
+ lore.forEach { line ->
+ if (internalName.contains("LOTUS")) {
lotusAbilityPattern.matchMatcher(line) {
return group("bonus").toDouble()
}
@@ -226,6 +236,7 @@ class FarmingFortuneDisplay {
return if (pieces < 2) 0.0 else group("bonus").toDouble() / pieces
}
}
+
return 0.0
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
index e0931cd4c..db4ebde20 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
@@ -6,6 +6,7 @@ import at.hannibal2.skyhanni.features.garden.FarmingFortuneDisplay.Companion.get
import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType
import at.hannibal2.skyhanni.features.garden.fortuneguide.FFGuideGUI
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
+import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.OSUtils
import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getFarmingForDummiesCount
@@ -32,8 +33,10 @@ class ToolTooltipTweaks {
if (!LorenzUtils.inSkyBlock) return
val itemStack = event.itemStack
+ val itemLore = itemStack.getLore()
+ val internalName = itemStack.getInternalName()
val crop = itemStack.getCropType()
- val toolFortune = FarmingFortuneDisplay.getToolFortune(itemStack)
+ val toolFortune = FarmingFortuneDisplay.getToolFortune(internalName)
val counterFortune = FarmingFortuneDisplay.getCounterFortune(itemStack)
val collectionFortune = FarmingFortuneDisplay.getCollectionFortune(itemStack)
val turboCropFortune = FarmingFortuneDisplay.getTurboCropFortune(itemStack, crop)
@@ -44,7 +47,7 @@ class ToolTooltipTweaks {
val sunderFortune = FarmingFortuneDisplay.getSunderFortune(itemStack)
val harvestingFortune = FarmingFortuneDisplay.getHarvestingFortune(itemStack)
val cultivatingFortune = FarmingFortuneDisplay.getCultivatingFortune(itemStack)
- val abilityFortune = getAbilityFortune(itemStack)
+ val abilityFortune = getAbilityFortune(internalName, itemLore)
val ffdFortune = itemStack.getFarmingForDummiesCount() ?: 0
val hiddenFortune =
@@ -137,7 +140,7 @@ class ToolTooltipTweaks {
}
// Fixing a hypixel bug. TODO remove once hypixel fixes it. use disabled features repo maybe?
- if (itemStack.getInternalName().contains("LOTUS")) {
+ if (internalName.contains("LOTUS")) {
event.toolTip.replaceAll { it.replace("Kills:", "Visitors:") }
}
}