From 8a3d7b0c13439a426c1ae58cffeee029c7e9b888 Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Mon, 30 Dec 2024 14:26:02 +0100 Subject: feat: God Pot and God Pot Mixin Detection --- .../moe/nea/ledger/modules/GodPotionDetection.kt | 34 +++++++++++++++++++ .../nea/ledger/modules/GodPotionMixinDetection.kt | 38 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/main/kotlin/moe/nea/ledger/modules/GodPotionDetection.kt create mode 100644 src/main/kotlin/moe/nea/ledger/modules/GodPotionMixinDetection.kt (limited to 'src/main/kotlin/moe/nea/ledger/modules') diff --git a/src/main/kotlin/moe/nea/ledger/modules/GodPotionDetection.kt b/src/main/kotlin/moe/nea/ledger/modules/GodPotionDetection.kt new file mode 100644 index 0000000..806feb0 --- /dev/null +++ b/src/main/kotlin/moe/nea/ledger/modules/GodPotionDetection.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 GodPotionDetection { + + val godPotionDrank = "(SIP|SLURP|GULP|CHUGALUG)! The God Potion grants you powers for .*!".toPattern() + + @Inject + lateinit var logger: LedgerLogger + + @SubscribeEvent + fun onChat(event: ChatReceived) { + godPotionDrank.useMatcher(event.message) { + logger.logEntry( + LedgerEntry( + TransactionType.GOD_POTION_DRANK, + event.timestamp, + listOf( + ItemChange.lose(ItemId.GOD_POTION, 1) + ) + ) + ) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/moe/nea/ledger/modules/GodPotionMixinDetection.kt b/src/main/kotlin/moe/nea/ledger/modules/GodPotionMixinDetection.kt new file mode 100644 index 0000000..b96a24a --- /dev/null +++ b/src/main/kotlin/moe/nea/ledger/modules/GodPotionMixinDetection.kt @@ -0,0 +1,38 @@ +package moe.nea.ledger.modules + +import moe.nea.ledger.ItemChange +import moe.nea.ledger.ItemId +import moe.nea.ledger.ItemIdProvider +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 GodPotionMixinDetection { + + val godPotionMixinDrank = "SCHLURP! The (effects of the )?(?.*?) (grants you effects|have been extended by) .*! They will pause if your God Potion expires.".toPattern() + + @Inject + lateinit var logger: LedgerLogger + + @Inject + lateinit var itemIdProvider: ItemIdProvider + + @SubscribeEvent + fun onChat(event: ChatReceived) { + godPotionMixinDrank.useMatcher(event.message) { + logger.logEntry( + LedgerEntry( + TransactionType.GOD_POTION_MIXIN_DRANK, + event.timestamp, + listOf( + ItemChange.lose(itemIdProvider.findForName(group("what")) ?: ItemId.NIL, 1) + ) + ) + ) + } + } +} \ No newline at end of file -- cgit