From 703b97a2b49cd68eef036e6965ca78547d460d93 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Mon, 28 Aug 2023 20:33:35 +0200 Subject: Added Total Crop Milestone --- .../hannibal2/skyhanni/data/GardenCropMilestones.kt | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt index da2caac0c..277fdb56c 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt @@ -8,26 +8,33 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.jsonobjects.GardenJson +import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object GardenCropMilestones { private val cropPattern = "§7Harvest §f(?.*) §7on .*".toPattern() private val totalPattern = "§7Total: §a(?.*)".toPattern() + fun getCropTypeByLore(itemStack: ItemStack): CropType? { + for (line in itemStack.getLore()) { + cropPattern.matchMatcher(line) { + val name = group("name") + return CropType.getByNameOrNull(name) + } + } + return null + } + @SubscribeEvent fun onInventoryOpen(event: InventoryFullyOpenedEvent) { if (event.inventoryName != "Crop Milestones") return for ((_, stack) in event.inventoryItems) { - var crop: CropType? = null + val crop = getCropTypeByLore(stack) ?: continue for (line in stack.getLore()) { - cropPattern.matchMatcher(line) { - val name = group("name") - crop = CropType.getByNameOrNull(name) - } totalPattern.matchMatcher(line) { val amount = group("name").replace(",", "").toLong() - crop?.setCounter(amount) + crop.setCounter(amount) } } } @@ -65,6 +72,8 @@ object GardenCropMilestones { return tier } + fun getMaxTier() = cropMilestoneData?.values?.firstOrNull()?.size ?: 0 + fun getCropsForTier(requestedTier: Int, crop: CropType): Long { var totalCrops = 0L var tier = 0 -- cgit