summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/event
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-11-28 22:58:22 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-11-28 22:58:22 +0100
commite05de00532b49bf7cb620a3a4b1da31889caf3b8 (patch)
tree2c4706753cb9f8430d92e8e64d1fb5933045301e /src/main/java/at/hannibal2/skyhanni/features/event
parent6125931a4bbc47bf6a62e26b7f16b8269c193c45 (diff)
downloadskyhanni-e05de00532b49bf7cb620a3a4b1da31889caf3b8.tar.gz
skyhanni-e05de00532b49bf7cb620a3a4b1da31889caf3b8.tar.bz2
skyhanni-e05de00532b49bf7cb620a3a4b1da31889caf3b8.zip
Added unique gifted users counter.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/event')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/winter/UniqueGiftCounter.kt74
2 files changed, 77 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt
index 6679f402c..517786710 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt
@@ -6,6 +6,7 @@ import at.hannibal2.skyhanni.events.EntityCustomNameUpdateEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.RenderMobColoredEvent
import at.hannibal2.skyhanni.events.withAlpha
+import at.hannibal2.skyhanni.features.event.winter.UniqueGiftCounter
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.EntityUtils.isNPC
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -20,7 +21,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object UniqueGiftingOpportnitiesFeatures {
private val playerList: MutableSet<String>?
- get() = ProfileStorageData.playerSpecific?.playersThatHaveBeenGifted
+ get() = ProfileStorageData.playerSpecific?.winter?.playersThatHaveBeenGifted
private val pattern = "§6\\+1 Unique Gift given! To ([^§]+)§r§6!".toPattern()
@@ -73,6 +74,7 @@ object UniqueGiftingOpportnitiesFeatures {
fun onChat(event: LorenzChatEvent) {
pattern.matchMatcher(event.message) {
addGiftedPlayer(group(1))
+ UniqueGiftCounter.addUniqueGift()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/winter/UniqueGiftCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/event/winter/UniqueGiftCounter.kt
new file mode 100644
index 000000000..10b52745a
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/winter/UniqueGiftCounter.kt
@@ -0,0 +1,74 @@
+package at.hannibal2.skyhanni.features.event.winter
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.data.ProfileStorageData
+import at.hannibal2.skyhanni.events.GuiRenderEvent
+import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
+import at.hannibal2.skyhanni.events.IslandChangeEvent
+import at.hannibal2.skyhanni.utils.InventoryUtils
+import at.hannibal2.skyhanni.utils.ItemUtils.getLore
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
+import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+object UniqueGiftCounter {
+
+ private val config get() = SkyHanniMod.feature.event.winter.uniqueGiftCounter
+ private val storage get() = ProfileStorageData.playerSpecific?.winter
+
+ private val pattern = "§7Unique Players Gifted: §a(?<amount>.*)".toPattern()
+
+ private var display = ""
+
+ @SubscribeEvent
+ fun onInventoryOpen(event: InventoryFullyOpenedEvent) {
+ if (event.inventoryName != "Generow") return
+ val item = event.inventoryItems[40] ?: return
+
+ val storage = storage ?: return
+
+ for (line in item.getLore()) {
+ pattern.matchMatcher(line) {
+ val amount = group("amount").formatNumber().toInt()
+ storage.amountGifted = amount
+ update()
+ return
+ }
+ }
+ }
+
+ @SubscribeEvent
+ fun onIslandChange(event: IslandChangeEvent) {
+ update()
+ }
+
+ fun addUniqueGift() {
+ val storage = storage ?: return
+ storage.amountGifted++
+ update()
+ }
+
+ private fun update() {
+ val storage = storage ?: return
+
+ val amountGifted = storage.amountGifted
+ val max = 600
+ val hasMax = amountGifted >= max
+ val color = if (hasMax) "§a" else "§e"
+ display = "§7Unique Players Gifted: $color$amountGifted/$max"
+ }
+
+ @SubscribeEvent
+ fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) {
+ if (!isEnabled()) return
+
+ config.position.renderString(
+ display,
+ posLabel = "Unique Gift Counter"
+ )
+ }
+
+ private fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled && InventoryUtils.itemInHandId.endsWith("_GIFT")
+}