aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal002@users.noreply.github.com>2024-03-06 23:51:02 +0100
committerGitHub <noreply@github.com>2024-03-06 23:51:02 +0100
commit0a95a791eb57a546fb5421594abae740faf1dfdb (patch)
tree82bfc13c544a60d496bab081b66ddd73e07d62a3 /src/main/java/at/hannibal2/skyhanni/features/garden
parent28430fe85115334fb06fb7e3cc36da819f08dace (diff)
downloadskyhanni-0a95a791eb57a546fb5421594abae740faf1dfdb.tar.gz
skyhanni-0a95a791eb57a546fb5421594abae740faf1dfdb.tar.bz2
skyhanni-0a95a791eb57a546fb5421594abae740faf1dfdb.zip
Internal Changes: Many small code cleanups (#1101)
Co-authored-by: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt2
20 files changed, 91 insertions, 88 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
index 9ec66e9f8..c1df32a98 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
@@ -6,7 +6,6 @@ import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.features.garden.visitor.VisitorAPI
import at.hannibal2.skyhanni.test.command.ErrorManager
-import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
@@ -14,11 +13,9 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.itemName
import at.hannibal2.skyhanni.utils.ItemUtils.name
-import at.hannibal2.skyhanni.utils.ItemUtils.nameWithEnchantment
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
-import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
@@ -64,9 +61,9 @@ class AnitaMedalProfit {
readItem(item, table)
} catch (e: Throwable) {
ErrorManager.logErrorWithData(
- e, "Error in AnitaMedalProfit while reading item '${item.nameWithEnchantment}'",
+ e, "Error in AnitaMedalProfit while reading item '${item.itemName}'",
"item" to item,
- "name" to item.nameWithEnchantment,
+ "name" to item.itemName,
"inventory name" to InventoryUtils.openInventoryName(),
)
}
@@ -90,7 +87,7 @@ class AnitaMedalProfit {
val (name, amount) = ItemUtils.readItemAmount(itemName) ?: return
- var internalName = NEUItems.getInternalNameOrNull(name)
+ var internalName = NEUInternalName.fromItemNameOrNull(name)
if (internalName == null) {
internalName = item.getInternalName()
}
@@ -105,7 +102,7 @@ class AnitaMedalProfit {
}
private fun getItemName(item: ItemStack): String? {
- val name = item.name ?: return null
+ val name = item.name
val isEnchantedBook = name.removeColor() == "Enchanted Book"
return if (isEnchantedBook) {
item.itemName
@@ -118,7 +115,10 @@ class AnitaMedalProfit {
for (rawItemName in requiredItems) {
val pair = ItemUtils.readItemAmount(rawItemName)
if (pair == null) {
- ChatUtils.error("Could not read item '$rawItemName'")
+ ErrorManager.logErrorStateWithData(
+ "Error in Anita Medal Contest", "Could not read item amount",
+ "rawItemName" to rawItemName,
+ )
continue
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
index d69b92bb3..766bdd55d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
@@ -9,7 +9,8 @@ import at.hannibal2.skyhanni.utils.ChatUtils
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.NumberUtil.formatNumber
+import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
+import at.hannibal2.skyhanni.utils.NumberUtil.formatLong
import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
@@ -80,16 +81,16 @@ class GardenLevelDisplay {
if (event.inventoryName != "Desk") return
val item = event.inventoryItems[4]!!
- val currentLevel = currentLevelPattern.matchMatcher(item.name!!.removeColor()) {
+ val currentLevel = currentLevelPattern.matchMatcher(item.name.removeColor()) {
group("currentLevel").romanToDecimalIfNecessary()
} ?: return
var nextLevelExp = 0L
for (line in item.getLore()) {
expToNextLevelPattern.matchMatcher(line) {
- nextLevelExp = group("nextLevelExp").formatNumber()
+ nextLevelExp = group("nextLevelExp").formatLong()
}
overflowPattern.matchMatcher(line) {
- val overflow = group("overflow").formatNumber()
+ val overflow = group("overflow").formatLong()
GardenAPI.gardenExp = overflow
update()
return
@@ -115,9 +116,7 @@ class GardenLevelDisplay {
val overflow = gardenExp - needForLevel
val needForOnlyNextLvl = needForNextLevel - needForLevel
- val need = LorenzUtils.formatInteger(overflow)
- val have = LorenzUtils.formatInteger(needForOnlyNextLvl)
- " §7(§e$need§7/§e$have§7)"
+ " §7(§e${overflow.addSeparators()}§7/§e${needForOnlyNextLvl.addSeparators()}§7)"
} else ""
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
index 76e1395ab..22eabf10e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
@@ -185,8 +185,7 @@ object GardenNextJacobContest {
if (!config.display) return
val backItem = event.inventoryItems[48] ?: return
- val backName = backItem.name
- if (backName != "§aGo Back") return
+ if (backItem.name != "§aGo Back") return
val lore = backItem.getLore()
if (lore.size != 1) return
if (lore[0] != "§7To Calendar and Events") return
@@ -227,8 +226,7 @@ object GardenNextJacobContest {
val lore = item.getLore()
if (!lore.any { it.contains("§6§eJacob's Farming Contest") }) continue
- val name = item.name ?: continue
- val day = dayPattern.matchMatcher(name) { group("day").toInt() } ?: continue
+ val day = dayPattern.matchMatcher(item.name) { group("day").toInt() } ?: continue
val startTime = SkyBlockTime(year, month, day).asTimeMark()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
index 085095f4f..a00440667 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
@@ -2,7 +2,7 @@ package at.hannibal2.skyhanni.features.garden.composter
import at.hannibal2.skyhanni.data.model.ComposterUpgrade
import at.hannibal2.skyhanni.features.garden.GardenAPI
-import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
+import at.hannibal2.skyhanni.utils.NumberUtil.formatLong
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TimeUtils
import kotlin.math.floor
@@ -52,9 +52,9 @@ object ComposterAPI {
return timePerCompost * compostRemainingAfterNextCompostFinishes
}
- fun getFuel() = tabListData[ComposterDisplay.DataType.FUEL]?.removeColor()?.formatNumber() ?: 0
+ fun getFuel() = tabListData[ComposterDisplay.DataType.FUEL]?.removeColor()?.formatLong() ?: 0
- fun getOrganicMatter() = tabListData[ComposterDisplay.DataType.ORGANIC_MATTER]?.removeColor()?.formatNumber() ?: 0
+ fun getOrganicMatter() = tabListData[ComposterDisplay.DataType.ORGANIC_MATTER]?.removeColor()?.formatLong() ?: 0
fun maxOrganicMatter(addOne: ComposterUpgrade?) =
40_000 + ComposterUpgrade.ORGANIC_MATTER_CAP.getLevel(addOne) * 20_000
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
index c7a6b8f8b..349d20779 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
@@ -45,6 +45,8 @@ class ComposterDisplay {
}
}
+ private val BUCKET by lazy { "BUCKET".asInternalName().getItemStack() }
+
@SubscribeEvent
fun onTabListUpdate(event: TabListUpdateEvent) {
if (!(config.displayEnabled && GardenAPI.inGarden())) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
index acb62abe2..5747032cf 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
@@ -6,6 +6,7 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
+import at.hannibal2.skyhanni.utils.NumberUtil.formatInt
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
@@ -38,7 +39,7 @@ class ComposterInventoryNumbers {
if (slotNumber == 13) {
for (line in stack.getLore()) {
amountPattern.matchMatcher(line) {
- val total = group("amount").replace(",", "").toInt()
+ val total = group("amount").formatInt()
event.offsetY = -2
event.offsetX = -20
event.stackTip = "§6${total.addSeparators()}"
@@ -51,7 +52,7 @@ class ComposterInventoryNumbers {
if (slotNumber == 46 || slotNumber == 52) {
for (line in stack.getLore()) {
valuePattern.matchMatcher(line) {
- val having = group("having").removeColor().replace(",", "").toDouble().toInt()
+ val having = group("having").removeColor().formatInt()
val havingFormat = NumberUtil.format(having)
val total = group("total").removeColor()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
index 5a8b866e7..a34c7e8c0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
@@ -47,6 +47,7 @@ import at.hannibal2.skyhanni.utils.SoundUtils
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TimeUtils
+import at.hannibal2.skyhanni.utils.TimeUtils.format
import at.hannibal2.skyhanni.utils.renderables.Renderable
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -105,6 +106,8 @@ object ComposterOverlay {
ChatUtils.chat("Composter test offset set to $testOffset.")
}
+ private val COMPOST by lazy { "COMPOST".asInternalName() }
+
@SubscribeEvent
fun onInventoryClose(event: InventoryCloseEvent) {
inInventory = false
@@ -143,15 +146,14 @@ object ComposterOverlay {
if (!inComposterUpgrades) return
update()
for (upgrade in ComposterUpgrade.entries) {
- event.itemStack.name?.let {
- if (it.contains(upgrade.displayName)) {
- maxLevel = ComposterUpgrade.regex.matchMatcher(it) {
- group("level")?.romanToDecimalIfNecessary() ?: 0
- } == 25
- extraComposterUpgrade = upgrade
- update()
- return
- }
+ val name = event.itemStack.name
+ if (name.contains(upgrade.displayName)) {
+ maxLevel = ComposterUpgrade.regex.matchMatcher(name) {
+ group("level")?.romanToDecimalIfNecessary() ?: 0
+ } == 25
+ extraComposterUpgrade = upgrade
+ update()
+ return
}
}
if (extraComposterUpgrade != null) {
@@ -249,8 +251,7 @@ object ComposterOverlay {
return newList
}
- private fun formatTime(timePerCompost1: Duration) =
- TimeUtils.formatDuration(timePerCompost1.toLong(DurationUnit.MILLISECONDS), maxUnits = 2)
+ private fun formatTime(duration: Duration) = duration.format(maxUnits = 2)
private fun drawOrganicMatterDisplay(): MutableList<List<Any>> {
val maxOrganicMatter = ComposterAPI.maxOrganicMatter(if (maxLevel) null else extraComposterUpgrade)
@@ -367,7 +368,7 @@ object ComposterOverlay {
" §7Material costs per $timeText: §6${NumberUtil.format(totalCost)}$materialCostFormatPreview"
newList.addAsSingletonList(materialCostFormat)
- val priceCompost = getPrice("COMPOST")
+ val priceCompost = COMPOST.getPrice()
val profit = ((priceCompost * multiDropFactor) - (fuelPricePer + organicMatterPricePer)) * timeMultiplier
val profitPreview =
((priceCompost * multiDropFactorPreview) - (fuelPricePerPreview + organicMatterPricePerPreview)) * timeMultiplierPreview
@@ -392,7 +393,7 @@ object ComposterOverlay {
}
val testOffset = if (testOffset_ > map.size) {
- ChatUtils.error("Invalid Composter Overlay Offset! $testOffset cannot be greater than ${map.size}!")
+ ChatUtils.userError("Invalid Composter Overlay Offset! $testOffset cannot be greater than ${map.size}!")
ComposterOverlay.testOffset = 0
0
} else testOffset_
@@ -425,7 +426,6 @@ object ComposterOverlay {
val factor = factors[internalName]!!
val item = internalName.getItemStack()
- val itemName = item.name!!
val price = getPrice(internalName)
val itemsNeeded = if (config.roundDown) {
val amount = missing / factor
@@ -444,7 +444,7 @@ object ComposterOverlay {
list.add("#$i ")
}
list.add(item)
- formatPrice(totalPrice, internalName, itemName, list, itemsNeeded, onClick)
+ formatPrice(totalPrice, internalName, item.name, list, itemsNeeded, onClick)
bigList.add(list)
if (i == 10 + testOffset) break
}
@@ -571,13 +571,13 @@ object ComposterOverlay {
|| internalName == "SIMPLE_CARROT_CANDY"
) continue
- var (newId, amount) = NEUItems.getMultiplier(internalName)
+ var (newId, amount) = NEUItems.getMultiplier(internalName.asInternalName())
if (amount <= 9) continue
if (internalName == "ENCHANTED_HUGE_MUSHROOM_1" || internalName == "ENCHANTED_HUGE_MUSHROOM_2") {
// 160 * 8 * 4 is 5120 and not 5184, but hypixel made an error, so we have to copy the error
amount = 5184
}
- baseValues[newId.asInternalName()]?.let {
+ baseValues[newId]?.let {
map[internalName.asInternalName()] = it * amount
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
index 727c86ef0..399967809 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
@@ -13,6 +13,7 @@ import at.hannibal2.skyhanni.utils.CollectionUtils.nextAfter
import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.NumberUtil.formatInt
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
@@ -132,7 +133,7 @@ object FarmingContestAPI {
for (bracket in ContestBracket.entries) {
val amount = lore.firstNotNullOfOrNull {
bracket.bracketPattern.matchMatcher(it) {
- group("amount").replace(",", "").toInt()
+ group("amount").formatInt()
}
} ?: continue
put(bracket, amount)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
index da38c318b..b663690f0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
@@ -39,8 +39,7 @@ class JacobContestFFNeededDisplay {
return
}
- val name = stack.name ?: return
- val time = FarmingContestAPI.getSbTimeFor(name) ?: return
+ val time = FarmingContestAPI.getSbTimeFor(stack.name) ?: return
val contest = FarmingContestAPI.getContestAtTime(time) ?: return
val newDisplay = drawDisplay(contest)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
index 727aae614..f7576abba 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
@@ -55,10 +55,8 @@ class JacobFarmingContestsInventory {
for ((slot, item) in event.inventoryItems) {
if (!item.getLore().any { it.startsWith("§7Your score: §e") }) continue
- val name = item.name!!
-
- foundEvents.add(name)
- val time = FarmingContestAPI.getSbTimeFor(name) ?: continue
+ foundEvents.add(item.name)
+ val time = FarmingContestAPI.getSbTimeFor(item.name) ?: continue
FarmingContestAPI.addContest(time, item)
if (config.realTime) {
readRealTime(time, slot)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
index ba9638711..31db0b811 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
@@ -58,6 +58,8 @@ object CropMoneyDisplay {
private val cropNames = mutableMapOf<NEUInternalName, CropType>()
private val toolHasBountiful get() = GardenAPI.storage?.toolWithBountiful
+ val BOX_OF_SEEDS by lazy { "BOX_OF_SEEDS".asInternalName().getItemStack() }
+
@SubscribeEvent
fun onProfileJoin(event: ProfileJoinEvent) {
display = emptyList()
@@ -142,12 +144,17 @@ object CropMoneyDisplay {
extraMushroomCowPerkCoins = perSecond * 60 * 60
}
- if (InventoryUtils.getItemInHand()?.getInternalName()?.contains("DICER") == true && config.dicer) {
+ val itemInHand = InventoryUtils.getItemInHand()?.getInternalName()
+ if (itemInHand?.contains("DICER") == true && config.dicer) {
val (dicerDrops, internalName) = when (it) {
CropType.MELON -> GardenCropSpeed.latestMelonDicer to "ENCHANTED_MELON".asInternalName()
CropType.PUMPKIN -> GardenCropSpeed.latestPumpkinDicer to "ENCHANTED_PUMPKIN".asInternalName()
- else -> ErrorManager.skyHanniError("Unknown dicer: $it")
+ else -> ErrorManager.skyHanniError(
+ "Unknown dicer detected.",
+ "crop" to it,
+ "item in hand" to itemInHand,
+ )
}
val bazaarData = internalName.getBazaarData()
val price =
@@ -195,13 +202,13 @@ object CropMoneyDisplay {
try {
if (isSeeds(internalName)) {
- list.add(getItemStack("BOX_OF_SEEDS"))
+ list.add(BOX_OF_SEEDS)
} else {
list.add(internalName.getItemStack())
}
if (cropNames[internalName] == CropType.WHEAT && config.mergeSeeds) {
- list.add(getItemStack("BOX_OF_SEEDS"))
+ list.add(BOX_OF_SEEDS)
}
} catch (e: NullPointerException) {
ErrorManager.logErrorWithData(
@@ -274,7 +281,7 @@ object CropMoneyDisplay {
private fun format(moneyPerHour: Double) = if (config.compactPrice) {
NumberUtil.format(moneyPerHour)
} else {
- LorenzUtils.formatInteger(moneyPerHour.toLong())
+ moneyPerHour.toLong().addSeparators()
}
private fun calculateMoneyPerHour(debugList: MutableList<List<Any>>): Map<NEUInternalName, Array<Double>> {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
index 592705bb7..b62eeb56b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
@@ -128,7 +128,7 @@ object DicerRngDropTracker {
val crop = event.crop
cropInHand = if (crop == CropType.MELON || crop == CropType.PUMPKIN) crop else null
if (cropInHand != null) {
- toolName = event.toolItem!!.name!!
+ toolName = event.toolItem!!.name
}
tracker.update()
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
index a1181b1d0..abd29aee6 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
@@ -37,7 +37,7 @@ class WildStrawberryDyeNotification {
val internalName = itemStack.getInternalName()
if (internalName == item) {
- val name = itemStack.name!!
+ val name = itemStack.name
LorenzUtils.sendTitle(name, 5.seconds)
ChatUtils.chat("You found a $name§e!")
SoundUtils.playBeepSound()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
index 9cbce06de..c5f6da249 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
@@ -65,7 +65,7 @@ open class FFGuideGUI : GuiScreen() {
ItemStack(Blocks.barrier).setStackDisplayName(name)
}
- fun isFallbackItem(item: ItemStack) = item.name!!.startsWith("§cNo saved ")
+ fun isFallbackItem(item: ItemStack) = item.name.startsWith("§cNo saved ")
}
init {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
index 1ebc5be3b..27518b7d3 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
@@ -12,7 +12,7 @@ import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
-import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
+import at.hannibal2.skyhanni.utils.NumberUtil.formatDouble
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -42,7 +42,7 @@ class AnitaExtraFarmingFortune {
val baseAmount = levelPrice[anitaUpgrade + 1]?.jacob_tickets ?: return
for (line in event.toolTip) {
realAmountPattern.matchMatcher(line) {
- val realAmount = group("realAmount").formatNumber().toDouble()
+ val realAmount = group("realAmount").formatDouble()
contributionFactor = realAmount / baseAmount
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
index 98e2ffb41..5d76e6c57 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
@@ -49,11 +49,9 @@ class GardenInventoryNumbers {
if (InventoryUtils.openInventoryName() == "Composter Upgrades") {
if (!config.composterUpgrades) return
- event.stack.name?.let {
- ComposterUpgrade.regex.matchMatcher(it) {
- val level = group("level")?.romanToDecimalIfNecessary() ?: 0
- event.stackTip = "$level"
- }
+ ComposterUpgrade.regex.matchMatcher(event.stack.name) {
+ val level = group("level")?.romanToDecimalIfNecessary() ?: 0
+ event.stackTip = "$level"
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
index 91c65b8a8..54414d211 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
@@ -2,11 +2,12 @@ package at.hannibal2.skyhanni.features.garden.inventory
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
-import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.name
-import at.hannibal2.skyhanni.utils.NEUItems
+import at.hannibal2.skyhanni.utils.NEUInternalName
+import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -19,8 +20,7 @@ class GardenNextPlotPrice {
if (InventoryUtils.openInventoryName() != "Configure Plots") return
- val name = event.itemStack.name ?: return
- if (!name.startsWith("§ePlot")) return
+ if (!event.itemStack.name.startsWith("§ePlot")) return
var next = false
val list = event.toolTip
@@ -36,12 +36,17 @@ class GardenNextPlotPrice {
val readItemAmount = ItemUtils.readItemAmount(line)
readItemAmount?.let {
val (itemName, amount) = it
- val lowestBin = NEUItems.getPrice(NEUItems.getRawInternalName(itemName))
+ val lowestBin = NEUInternalName.fromItemName(itemName).getPrice()
val price = lowestBin * amount
val format = NumberUtil.format(price)
list[i] = list[i] + " §7(§6$format§7)"
- } ?: {
- ChatUtils.error("Could not read item '$line'")
+ } ?: run {
+ ErrorManager.logErrorStateWithData(
+ "Garden Next Plot Price error",
+ "Could not read item amount from line",
+ "line" to line,
+ "event.toolTip" to event.toolTip,
+ )
}
break
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
index 81d01f2dd..d27401e44 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
@@ -8,13 +8,13 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
-import at.hannibal2.skyhanni.utils.ItemUtils.nameWithEnchantment
+import at.hannibal2.skyhanni.utils.ItemUtils.itemName
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUInternalName
-import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NEUItems.getPriceOrNull
import at.hannibal2.skyhanni.utils.NumberUtil
+import at.hannibal2.skyhanni.utils.NumberUtil.formatInt
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
@@ -48,7 +48,7 @@ class SkyMartCopperPrice {
if (!found) continue
if (lines.isEmpty()) return list
- NEUItems.getInternalNameOrNull(lines)?.let {
+ NEUInternalName.fromItemNameOrNull(lines)?.let {
list.add(it)
}
}
@@ -72,14 +72,14 @@ class SkyMartCopperPrice {
val profit = lowestBin - otherItemsPrice
val amount = copperPattern.matchMatcher(line) {
- group("amount").replace(",", "").toInt()
+ group("amount").formatInt()
} ?: continue
val factor = profit / amount
val perFormat = NumberUtil.format(factor)
val priceFormat = NumberUtil.format(profit)
val amountFormat = NumberUtil.format(amount)
- val name = stack.nameWithEnchantment!!
+ val name = stack.itemName
val advancedStats = if (config.copperPriceAdvancedStats) {
" §7(§6$priceFormat §7/ §c$amountFormat Copper§7)"
} else ""
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
index 38595d1bc..11669cece 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
@@ -46,6 +46,7 @@ import at.hannibal2.skyhanni.utils.NEUItems.getItemStack
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
+import at.hannibal2.skyhanni.utils.NumberUtil.formatInt
import at.hannibal2.skyhanni.utils.RenderUtils.drawString
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
@@ -251,12 +252,7 @@ class GardenVisitorFeatures {
list.add("§7(§fAny§7)")
} else {
for (item in items) {
- val internalName = NEUItems.getInternalNameOrNull(item)
- if (internalName != null) {
- list.add(internalName.getItemStack())
- } else {
- list.add(" '$item' ")
- }
+ list.add(NEUInternalName.fromItemName(item).getItemStack())
}
}
}
@@ -337,7 +333,7 @@ class GardenVisitorFeatures {
}
val (itemName, amount) = ItemUtils.readItemAmount(formattedLine) ?: continue
- val internalName = NEUItems.getInternalNameOrNull(itemName)?.replace("◆_", "") ?: continue
+ val internalName = NEUInternalName.fromItemNameOrNull(itemName)?.replace("◆_", "") ?: continue
// Ignoring custom NEU items like copper
if (internalName.startsWith("SKYBLOCK_")) continue
@@ -374,14 +370,14 @@ class GardenVisitorFeatures {
val index = i + offset
if (config.inventory.experiencePrice) {
gardenExperiencePattern.matchMatcher(formattedLine) {
- val gardenExp = group("amount").replace(",", "").toInt()
+ val gardenExp = group("amount").formatInt()
val pricePerCopper = NumberUtil.format((totalPrice / gardenExp).toInt())
finalList.set(index, "$formattedLine §7(§6$pricePerCopper §7per)")
}
}
copperPattern.matchMatcher(formattedLine) {
- val copper = group("amount").replace(",", "").toInt()
+ val copper = group("amount").formatInt()
val pricePerCopper = NumberUtil.format((totalPrice / copper).toInt())
val timePerCopper = TimeUtils.formatDuration((farmingTimeRequired / copper) * 1000)
var copperLine = formattedLine
@@ -397,7 +393,7 @@ class GardenVisitorFeatures {
}
val (itemName, amount) = ItemUtils.readItemAmount(formattedLine) ?: continue
- val internalName = NEUItems.getInternalNameOrNull(itemName)?.replace("◆_", "") ?: continue
+ val internalName = NEUInternalName.fromItemNameOrNull(itemName)?.replace("◆_", "") ?: continue
// Ignoring custom NEU items like copper
if (internalName.startsWith("SKYBLOCK_")) continue
@@ -414,8 +410,7 @@ class GardenVisitorFeatures {
val cropType = getByNameOrNull(rawName) ?: continue
val cropAmount = multiplier.second.toLong() * amount
- val formattedAmount = LorenzUtils.formatInteger(cropAmount)
- val formattedName = "§e$formattedAmount§7x ${cropType.cropName} "
+ val formattedName = "§e${cropAmount.addSeparators()}§7x ${cropType.cropName} "
val formattedSpeed = cropType.getSpeed()?.let { speed ->
farmingTimeRequired = cropAmount / speed
val duration = TimeUtils.formatDuration(farmingTimeRequired * 1000)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
index 304da0d75..dac868528 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
@@ -101,7 +101,7 @@ class VisitorListener {
val visitorOffer = VisitorAPI.VisitorOffer(offerItem)
- var name = npcItem.name ?: return
+ var name = npcItem.name
if (name.length == name.removeColor().length + 4) {
name = name.substring(2)
}