package moe.nea.ledger.modules import moe.nea.ledger.LedgerEntry import moe.nea.ledger.LedgerLogger import moe.nea.ledger.SHORT_NUMBER_PATTERN import moe.nea.ledger.events.ChatReceived import moe.nea.ledger.parseShortNumber import moe.nea.ledger.useMatcher import moe.nea.ledger.utils.Inject import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.util.regex.Pattern class BankDetection @Inject constructor(val ledger: LedgerLogger) { val withdrawPattern = Pattern.compile("^(You have withdrawn|Withdrew) (?$SHORT_NUMBER_PATTERN) coins?! (?:There's now|You now have) (?$SHORT_NUMBER_PATTERN) coins? (?:left in the account!|in your account!)$") val depositPattern = Pattern.compile("^(?:You have deposited|Deposited) (?$SHORT_NUMBER_PATTERN) coins?! (?:There's now|You now have) (?$SHORT_NUMBER_PATTERN) coins? (?:in your account!|in the account!)$") @SubscribeEvent fun onChat(event: ChatReceived) { withdrawPattern.useMatcher(event.message) { ledger.logEntry( LedgerEntry( "BANK_WITHDRAW", event.timestamp, parseShortNumber(group("amount")), ) ) } depositPattern.useMatcher(event.message) { ledger.logEntry( LedgerEntry( "BANK_DEPOSIT", event.timestamp, parseShortNumber(group("amount")), ) ) } } }