diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt index 7490a7b..455e2df 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt @@ -3,10 +3,12 @@ package net.oxyopia.vice.features.itemabilities import net.minecraft.util.ClickType import net.oxyopia.vice.data.Debugger import net.oxyopia.vice.data.Set +import net.oxyopia.vice.features.itemabilities.ItemAbilityCooldown.hasCharged import net.oxyopia.vice.utils.ItemUtils.getEquippedSets import net.oxyopia.vice.utils.TimeUtils.timeDelta import net.oxyopia.vice.utils.Utils import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.seconds /** * Inspired from SkyHanni's similar feature, partially adapted @@ -110,6 +112,8 @@ enum class ItemAbility( diff /= 2 } + if (this == BROKEN_FLASHLIGHT && hasCharged) diff = this.cooldown.toInt().seconds + return maxOf(cooldown - (diff.inWholeMilliseconds / 1000.0f), 0f) } diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt index 4b528ac..205261c 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt @@ -40,6 +40,8 @@ object ItemAbilityCooldown { } } + var hasCharged = false + @SubscribeEvent fun onSound(event: SoundEvent) { @@ -317,6 +319,15 @@ object ItemAbilityCooldown { ability.drawStatus(event.x, event.y + 9, event.context) } + @SubscribeEvent + fun onBattery(event: ChatEvent) { + if(event.string.startsWith("+1 Triple P Battery")) { + hasCharged = true + } else { + hasCharged = false + } + } + private fun ItemAbility.drawStatus(x: Int, y: Int, context: DrawContext, centered: Boolean = false, defaultColor: Color = Color.white) { if (!Vice.config.SHOW_ITEMCD_TEXT && Vice.config.ITEMCD_DISPLAY_TYPE != DisplayType.TEXT_ONLY) return if (!Vice.config.ITEM_COOLDOWN_DISPLAY || !displayCooldown) return