From 51af64037d0422d4d6b603e1164e60cf4b50dda0 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Tue, 22 Aug 2023 22:47:58 +0200 Subject: Pet Experience Tooltip --- .../at/hannibal2/skyhanni/utils/LorenzUtils.kt | 2 ++ .../skyhanni/utils/SkyBlockItemModifierUtils.kt | 2 ++ .../at/hannibal2/skyhanni/utils/StringUtils.kt | 25 ++++++++++++++++++++++ 3 files changed, 29 insertions(+) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index 4641c566c..2186a6d19 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -474,4 +474,6 @@ object LorenzUtils { javaClass.getDeclaredField("modifiers").makeAccessible().set(this, modifiers and (Modifier.FINAL.inv())) return this } + + fun List.indexOfFirst(vararg args: T) = args.map { indexOf(it) }.firstOrNull { it != -1 } } \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/utils/SkyBlockItemModifierUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/SkyBlockItemModifierUtils.kt index 77d291d84..385571c56 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/SkyBlockItemModifierUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/SkyBlockItemModifierUtils.kt @@ -42,6 +42,8 @@ object SkyBlockItemModifierUtils { fun ItemStack.getDungeonStarCount() = getAttributeInt("upgrade_level") ?: getAttributeInt("dungeon_item_level") + fun ItemStack.getPetExp() = getPetInfo()?.get("exp")?.asDouble + fun ItemStack.getPetCandyUsed(): Int? { val data = cachedData if (data.petCandies == -1) { diff --git a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt index b4d3d106a..d60a1c9ce 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt @@ -127,4 +127,29 @@ object StringUtils { fun optionalPlural(number: Int, singular: String, plural: String) = "$number " + if (number == 1) singular else plural + + fun progressBar(percentage: Double, steps: Int = 25): Any { + //'§5§o§2§l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §f§l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §l§m §r §e348,144.3§6/§e936k' + val prefix = "§5§o§2" + val step = "§l§m " + val missing = "§f" + val end = "§r" + + val builder = StringBuilder() + var inMissingArea = false + builder.append(prefix) + for (i in 0..steps) { + builder.append(step) + val toDouble = i.toDouble() + val stepPercentage = toDouble / steps + if (stepPercentage > percentage) { + if (!inMissingArea) { + builder.append(missing) + inMissingArea = true + } + } + } + builder.append(end) + return builder.toString() + } } \ No newline at end of file -- cgit