diff options
author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2024-03-06 23:51:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-06 23:51:02 +0100 |
commit | 0a95a791eb57a546fb5421594abae740faf1dfdb (patch) | |
tree | 82bfc13c544a60d496bab081b66ddd73e07d62a3 /src/main/java/at/hannibal2/skyhanni/features/garden | |
parent | 28430fe85115334fb06fb7e3cc36da819f08dace (diff) | |
download | skyhanni-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')
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) } |