aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/ledger
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-02-15 20:42:19 +0100
committerLinnea Gräf <nea@nea.moe>2024-02-15 20:42:19 +0100
commitb7aa6cddd2a4134ff3ee53c8c1bc707dc1cab89c (patch)
tree3bb7db321605507aa3e8025c0dd7c64ea3edca3a /src/main/java/moe/nea/ledger
parentedc72af6ec6055822d0deed8efe3c952cbf65026 (diff)
downloadmoney-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.kt45
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(),
+ )
+ )
+ }
+ }
+}