aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorJ10a1n15 <45315647+j10a1n15@users.noreply.github.com>2024-05-16 11:02:39 +0200
committerGitHub <noreply@github.com>2024-05-16 11:02:39 +0200
commitd4f7a7753d7ba772add76b43bcf2f692d10f25ad (patch)
treee08b5cd78bf34effeb4e5c407e655a26d7fe4740 /src/main/java
parent8c87a65a2f1674599bd33522c56339aa04df8440 (diff)
downloadskyhanni-d4f7a7753d7ba772add76b43bcf2f692d10f25ad.tar.gz
skyhanni-d4f7a7753d7ba772add76b43bcf2f692d10f25ad.tar.bz2
skyhanni-d4f7a7753d7ba772add76b43bcf2f692d10f25ad.zip
Improvement: Arrow count in Custom Scoreboard when wearing Skeleton Masters Chestplate (#1795)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/QuiverAPI.kt27
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt12
2 files changed, 23 insertions, 16 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/QuiverAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/QuiverAPI.kt
index af921f22b..b13538c9b 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/QuiverAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/QuiverAPI.kt
@@ -52,7 +52,8 @@ object QuiverAPI {
private var arrows: List<ArrowType> = listOf()
- private var wearingSkeletonMasterChestplate = false
+ var wearingSkeletonMasterChestplate = false
+ private set
private var hasBow = false
const val MAX_ARROW_AMOUNT = 2880
@@ -107,7 +108,7 @@ object QuiverAPI {
"Unknown arrow type: $type",
"message" to message,
)
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
return
}
@@ -120,7 +121,7 @@ object QuiverAPI {
"message" to message,
)
arrowAmount[ranOutType.internalName] = 0
- QuiverUpdateEvent(ranOutType, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent(ranOutType)
}
fillUpJaxPattern.matchMatcher(message) {
@@ -135,7 +136,7 @@ object QuiverAPI {
arrowAmount.addOrPut(filledUpType.internalName, amount)
if (filledUpType == currentArrow) {
- QuiverUpdateEvent(filledUpType, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
}
return
@@ -147,7 +148,7 @@ object QuiverAPI {
FLINT_ARROW_TYPE?.let { arrowAmount.addOrPut(it.internalName, flintAmount) }
if (currentArrow == FLINT_ARROW_TYPE) {
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
}
return
}
@@ -165,7 +166,7 @@ object QuiverAPI {
arrowAmount.addOrPut(filledUpType.internalName, amount)
if (filledUpType == currentArrow) {
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
}
return
}
@@ -174,7 +175,7 @@ object QuiverAPI {
currentAmount = 0
arrowAmount.clear()
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
return
}
@@ -182,7 +183,7 @@ object QuiverAPI {
currentArrow = NONE_ARROW_TYPE
currentAmount = 0
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
return
}
}
@@ -224,7 +225,7 @@ object QuiverAPI {
if (currentArrowType != currentArrow || amount != currentAmount) {
currentArrow = currentArrowType
currentAmount = amount
- QuiverUpdateEvent(currentArrowType, amount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
}
}
}
@@ -253,8 +254,6 @@ object QuiverAPI {
fun isEnabled() = LorenzUtils.inSkyBlock && storage != null
- private fun shouldHideAmount() = wearingSkeletonMasterChestplate
-
private fun checkBowInventory() {
hasBow = InventoryUtils.getItemsInOwnInventory().any {
it.item is ItemBow && !fakeBowsPattern.matches(it.getInternalName().asString())
@@ -266,10 +265,14 @@ object QuiverAPI {
wearingSkeletonMasterChestplate =
InventoryUtils.getChestplate()?.getInternalName() == SKELETON_MASTER_CHESTPLATE
if (wasWearing != wearingSkeletonMasterChestplate) {
- QuiverUpdateEvent(currentArrow, currentAmount, shouldHideAmount()).postAndCatch()
+ postUpdateEvent()
}
}
+ private fun postUpdateEvent(arrowType: ArrowType? = currentArrow) {
+ QuiverUpdateEvent(arrowType, currentAmount, wearingSkeletonMasterChestplate).postAndCatch()
+ }
+
@SubscribeEvent
fun onTick(event: LorenzTickEvent) {
if (!isEnabled()) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
index 162124aa3..53d8539b4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
@@ -663,10 +663,14 @@ private fun getQuiverDisplayPair(): List<ScoreboardElementType> {
).getChatColor()
} else {
""
- }) + when (arrowConfig.arrowAmountDisplay) {
- ArrowAmountDisplay.NUMBER -> QuiverAPI.currentAmount.addSeparators()
- ArrowAmountDisplay.PERCENTAGE -> "${QuiverAPI.currentAmount.asArrowPercentage()}%"
- else -> QuiverAPI.currentAmount.addSeparators()
+ }) + if (QuiverAPI.wearingSkeletonMasterChestplate) {
+ "∞"
+ } else {
+ when (arrowConfig.arrowAmountDisplay) {
+ ArrowAmountDisplay.NUMBER -> QuiverAPI.currentAmount.addSeparators()
+ ArrowAmountDisplay.PERCENTAGE -> "${QuiverAPI.currentAmount.asArrowPercentage()}%"
+ else -> QuiverAPI.currentAmount.addSeparators()
+ }
}
return listOf(