diff options
author | Linnea Gräf <nea@nea.moe> | 2024-02-15 20:42:19 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-02-15 20:42:19 +0100 |
commit | b7aa6cddd2a4134ff3ee53c8c1bc707dc1cab89c (patch) | |
tree | 3bb7db321605507aa3e8025c0dd7c64ea3edca3a /src/main/java/moe/nea/ledger | |
parent | edc72af6ec6055822d0deed8efe3c952cbf65026 (diff) | |
download | money-ledger-b7aa6cddd2a4134ff3ee53c8c1bc707dc1cab89c.tar.gz money-ledger-b7aa6cddd2a4134ff3ee53c8c1bc707dc1cab89c.tar.bz2 money-ledger-b7aa6cddd2a4134ff3ee53c8c1bc707dc1cab89c.zip |
Add bazaar order support
Diffstat (limited to 'src/main/java/moe/nea/ledger')
-rw-r--r-- | src/main/java/moe/nea/ledger/BazaarOrderDetection.kt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/ledger/BazaarOrderDetection.kt b/src/main/java/moe/nea/ledger/BazaarOrderDetection.kt new file mode 100644 index 0000000..99a4213 --- /dev/null +++ b/src/main/java/moe/nea/ledger/BazaarOrderDetection.kt @@ -0,0 +1,45 @@ +package moe.nea.ledger + +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.util.regex.Pattern + +class BazaarOrderDetection(val ledger: LedgerLogger, val ids: ItemIdProvider) { + /* + [Bazaar] Buy Order Setup! 160x Wheat for 720.0 coins. + [Bazaar] Claimed 160x Wheat worth 720.0 coins bought for 4.5 each! + + [Bazaar] Sell Offer Setup! 160x Wheat for 933.4 coins. + [Bazaar] Claimed 34,236,799 coins from selling 176x Hyper Catalyst at 196,741 each! + */ + + val buyOrderClaimed = + Pattern.compile("\\[Bazaar] Claimed (?<amount>$SHORT_NUMBER_PATTERN)x (?<what>.*) worth (?<coins>$SHORT_NUMBER_PATTERN) coins? bought for $SHORT_NUMBER_PATTERN each!") + val sellOrderClaimed = + Pattern.compile("\\[Bazaar] Claimed (?<coins>$SHORT_NUMBER_PATTERN) coins? from selling (?<amount>$SHORT_NUMBER_PATTERN)x (?<what>.*) at $SHORT_NUMBER_PATTERN each!") + + @SubscribeEvent + fun detectBuyOrders(event: ChatReceived) { + buyOrderClaimed.useMatcher(event.message) { + ledger.logEntry( + LedgerEntry( + "BAZAAR_BUY_ORDER", + event.timestamp, + parseShortNumber(group("coins")), + ids.findForName(group("what")), + parseShortNumber(group("amount")).toInt(), + ) + ) + } + sellOrderClaimed.useMatcher(event.message) { + ledger.logEntry( + LedgerEntry( + "BAZAAR_SELL_ORDER", + event.timestamp, + parseShortNumber(group("coins")), + ids.findForName(group("what")), + parseShortNumber(group("amount")).toInt(), + ) + ) + } + } +} |