diff options
| author | Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> | 2024-03-05 01:41:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-05 01:41:53 +0100 |
| commit | 775b803a1f509d65235e82d75354f4e6596c5b3d (patch) | |
| tree | 61a2b4464aae81ce55bae4805a72d3403a7f7e9f /src/main/java/at/hannibal2/skyhanni/features/misc | |
| parent | a8fe4fcd86b0abd646b719134f5606908cd516af (diff) | |
| download | skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.tar.gz skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.tar.bz2 skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.zip | |
Change: Add Goal to CollectionTracker (#1102)
Co-authored-by: Cal <cwolfson58@gmail.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/CollectionTracker.kt | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionTracker.kt index 630d4fb83..459bfc25a 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CollectionTracker.kt @@ -11,9 +11,12 @@ import at.hannibal2.skyhanni.utils.ItemUtils.name 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.getItemStack import at.hannibal2.skyhanni.utils.NEUItems.getItemStackOrNull +import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators +import at.hannibal2.skyhanni.utils.NumberUtil.formatLong +import at.hannibal2.skyhanni.utils.NumberUtil.isFormatNumber +import at.hannibal2.skyhanni.utils.NumberUtil.percentWithColorCode import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.StringUtils.removeColor import net.minecraft.client.Minecraft @@ -31,6 +34,7 @@ class CollectionTracker { private var itemName = "" private var internalName: NEUInternalName? = null private var itemAmount = -1L + private var goalAmount = -1L private var lastAmountInInventory = -1 @@ -40,7 +44,7 @@ class CollectionTracker { fun command(args: Array<String>) { if (args.isEmpty()) { if (internalName == null) { - ChatUtils.userError("/shtrackcollection <item name>") + ChatUtils.userError("/shtrackcollection <item name> [goal amount]") return } ChatUtils.chat("Stopped collection tracker.") @@ -48,7 +52,22 @@ class CollectionTracker { return } - val rawName = fixTypo(args.joinToString(" ").lowercase().replace("_", " ")) + val lastArg = args.last() + + val nameArgs = if (lastArg.isFormatNumber()) { + val goal = lastArg.formatLong() + if (goal <= 0) { + ChatUtils.chat("Invalid Amount for Goal.") + return + } + goalAmount = goal + args.dropLast(1).toTypedArray() + } else { + goalAmount = -1L + args + } + + val rawName = fixTypo(nameArgs.joinToString(" ").lowercase().replace("_", " ")) if (rawName == "gemstone") { ChatUtils.userError("Gemstone collection is not supported!") return @@ -57,7 +76,7 @@ class CollectionTracker { return } - val foundInternalName = NEUItems.getInternalNameOrNull(rawName) + val foundInternalName = NEUInternalName.fromItemNameOrNull(rawName) if (foundInternalName == null) { ChatUtils.error("Item '$rawName' does not exist!") return @@ -111,7 +130,8 @@ class CollectionTracker { } private fun resetData() { - itemAmount = -1 + itemAmount = -1L + goalAmount = -1L internalName = null lastAmountInInventory = -1 @@ -121,18 +141,27 @@ class CollectionTracker { } private fun updateDisplay() { - val format = LorenzUtils.formatInteger(itemAmount) + val format = itemAmount.addSeparators() var gainText = "" if (recentGain != 0) { - gainText = "§a+" + LorenzUtils.formatInteger(recentGain) + gainText = "§a+" + recentGain.addSeparators() + } + + if (goalAmount != -1L && itemAmount >= goalAmount) { + ChatUtils.chat("Collection goal of §a${goalAmount.addSeparators()} reached!") + goalAmount = -1L } + val goal = if (goalAmount == -1L) "" else " §f/ §b${goalAmount.addSeparators()} §f(§a${ + itemAmount.percentWithColorCode(goalAmount, 1) + }§f)" + display = Collections.singletonList(buildList { internalName?.let { add(it.getItemStack()) } - add("$itemName collection: §e$format $gainText") + add("$itemName collection: §e$format$goal $gainText") }) } |
