From a913eeffce5055fa330e358d197eaad8f915e505 Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Sun, 29 Dec 2024 15:20:58 +0100 Subject: feat: Capsaicin Eyedrops detection (#8) --- src/main/kotlin/moe/nea/ledger/ItemId.kt | 1 + src/main/kotlin/moe/nea/ledger/Ledger.kt | 2 ++ src/main/kotlin/moe/nea/ledger/TransactionType.kt | 1 + .../moe/nea/ledger/modules/EyedropsDetection.kt | 34 ++++++++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 src/main/kotlin/moe/nea/ledger/modules/EyedropsDetection.kt (limited to 'src/main/kotlin/moe') diff --git a/src/main/kotlin/moe/nea/ledger/ItemId.kt b/src/main/kotlin/moe/nea/ledger/ItemId.kt index f627d08..fdfa19f 100644 --- a/src/main/kotlin/moe/nea/ledger/ItemId.kt +++ b/src/main/kotlin/moe/nea/ledger/ItemId.kt @@ -30,6 +30,7 @@ value class ItemId( val NIL = ItemId("SKYBLOCK_NIL") val ARCHFIEND_LOW_CLASS = ItemId("ARCHFIEND_DICE") val ARCHFIEND_HIGH_CLASS = ItemId("HIGH_CLASS_ARCHFIEND_DICE") + val CAP_EYEDROPS = ItemId("CAPSAICIN_EYEDROPS_NO_CHARGES") val ARCHFIEND_DYE = ItemId("DYE_ARCHFIEND") val SLEEPING_EYE = ItemId("SLEEPING_EYE") val SUMMONING_EYE = ItemId("SUMMONING_EYE") diff --git a/src/main/kotlin/moe/nea/ledger/Ledger.kt b/src/main/kotlin/moe/nea/ledger/Ledger.kt index ed3c6a2..d2d09eb 100644 --- a/src/main/kotlin/moe/nea/ledger/Ledger.kt +++ b/src/main/kotlin/moe/nea/ledger/Ledger.kt @@ -21,6 +21,7 @@ import moe.nea.ledger.modules.DragonEyePlacementDetection import moe.nea.ledger.modules.`DragonSacrificeDetection` import moe.nea.ledger.modules.DungeonChestDetection import moe.nea.ledger.modules.ExternalDataProvider +import moe.nea.ledger.modules.EyedropsDetection import moe.nea.ledger.modules.ForgeDetection import moe.nea.ledger.modules.GambleDetection import moe.nea.ledger.modules.KatDetection @@ -127,6 +128,7 @@ class Ledger { DungeonChestDetection::class.java, ErrorUtil::class.java, ExternalDataProvider::class.java, + EyedropsDetection::class.java, ForgeDetection::class.java, GambleDetection::class.java, ItemIdProvider::class.java, diff --git a/src/main/kotlin/moe/nea/ledger/TransactionType.kt b/src/main/kotlin/moe/nea/ledger/TransactionType.kt index 57f7535..00feebb 100644 --- a/src/main/kotlin/moe/nea/ledger/TransactionType.kt +++ b/src/main/kotlin/moe/nea/ledger/TransactionType.kt @@ -13,6 +13,7 @@ enum class TransactionType { BAZAAR_SELL_ORDER, BITS_PURSE_STATUS, BOOSTER_COOKIE_ATE, + CAPSAICIN_EYEDROPS_USED, COMMUNITY_SHOP_BUY, CORPSE_DESECRATED, DIE_ROLLED, diff --git a/src/main/kotlin/moe/nea/ledger/modules/EyedropsDetection.kt b/src/main/kotlin/moe/nea/ledger/modules/EyedropsDetection.kt new file mode 100644 index 0000000..2b1a8cd --- /dev/null +++ b/src/main/kotlin/moe/nea/ledger/modules/EyedropsDetection.kt @@ -0,0 +1,34 @@ +package moe.nea.ledger.modules + +import moe.nea.ledger.ItemChange +import moe.nea.ledger.ItemId +import moe.nea.ledger.LedgerEntry +import moe.nea.ledger.LedgerLogger +import moe.nea.ledger.TransactionType +import moe.nea.ledger.events.ChatReceived +import moe.nea.ledger.useMatcher +import moe.nea.ledger.utils.di.Inject +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class EyedropsDetection { + + val capsaicinEyedropsUsed = "You applied the eyedrops on the minion and ran out!".toPattern() + + @Inject + lateinit var logger: LedgerLogger + + @SubscribeEvent + fun onChat(event: ChatReceived) { + capsaicinEyedropsUsed.useMatcher(event.message) { + logger.logEntry( + LedgerEntry( + TransactionType.CAPSAICIN_EYEDROPS_USED, + event.timestamp, + listOf( + ItemChange.lose(ItemId.CAP_EYEDROPS, 1) + ) + ) + ) + } + } +} \ No newline at end of file -- cgit