diff options
author | Linnea Gräf <nea@nea.moe> | 2024-12-08 00:42:01 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-12-08 00:42:01 +0100 |
commit | fa72dd4ce107190cda7bc56234fed650f20e3aa9 (patch) | |
tree | 57a5fa0c224db5bb670e26813c958a768d6bdf90 /src/main/kotlin/moe/nea/ledger/LedgerLogger.kt | |
parent | 0a2342c015b310172f933df765d8651013c26f16 (diff) | |
download | LocalTransactionLedger-fa72dd4ce107190cda7bc56234fed650f20e3aa9.tar.gz LocalTransactionLedger-fa72dd4ce107190cda7bc56234fed650f20e3aa9.tar.bz2 LocalTransactionLedger-fa72dd4ce107190cda7bc56234fed650f20e3aa9.zip |
feat: Add visitor trading detection
Diffstat (limited to 'src/main/kotlin/moe/nea/ledger/LedgerLogger.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/ledger/LedgerLogger.kt | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/main/kotlin/moe/nea/ledger/LedgerLogger.kt b/src/main/kotlin/moe/nea/ledger/LedgerLogger.kt index 5403d92..fd439c9 100644 --- a/src/main/kotlin/moe/nea/ledger/LedgerLogger.kt +++ b/src/main/kotlin/moe/nea/ledger/LedgerLogger.kt @@ -2,7 +2,6 @@ package moe.nea.ledger import com.google.gson.Gson import com.google.gson.JsonArray -import com.google.gson.JsonObject import moe.nea.ledger.database.DBItemEntry import moe.nea.ledger.database.DBLogEntry import moe.nea.ledger.database.Database @@ -14,7 +13,6 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent import java.io.File import java.text.SimpleDateFormat -import java.time.Instant import java.util.Date import java.util.UUID @@ -132,104 +130,4 @@ class LedgerLogger { } } -enum class TransactionType { - AUCTION_BOUGHT, - AUCTION_SOLD, - AUTOMERCHANT_PROFIT_COLLECT, - BANK_DEPOSIT, - BANK_WITHDRAW, - BAZAAR_BUY_INSTANT, - BAZAAR_BUY_ORDER, - BAZAAR_SELL_INSTANT, - BAZAAR_SELL_ORDER, - BITS_PURSE_STATUS, - BOOSTER_COOKIE_ATE, - COMMUNITY_SHOP_BUY, - DUNGEON_CHEST_OPEN, - KAT_TIMESKIP, - KAT_UPGRADE, - KISMET_REROLL, - KUUDRA_CHEST_OPEN, - NPC_BUY, - NPC_SELL, -} - -@JvmInline -value class ItemId( - val string: String -) { - fun singleItem(): Pair<ItemId, Double> { - return withStackSize(1) - } - - fun withStackSize(size: Number): Pair<ItemId, Double> { - return Pair(this, size.toDouble()) - } - - - companion object { - val COINS = ItemId("SKYBLOCK_COIN") - val BITS = ItemId("SKYBLOCK_BIT") - val NIL = ItemId("SKYBLOCK_NIL") - val DUNGEON_CHEST_KEY = ItemId("DUNGEON_CHEST_KEY") - val BOOSTER_COOKIE = ItemId("BOOSTER_COOKIE") - val KISMET_FEATHER = ItemId("KISMET_FEATHER") - } -} - - -data class ItemChange( - val itemId: ItemId, - val count: Double, - val direction: ChangeDirection, -) { - enum class ChangeDirection { - GAINED, - TRANSFORM, - SYNC, - CATALYST, - LOST; - } - - companion object { - fun gainCoins(number: Double): ItemChange { - return gain(ItemId.COINS, number) - } - - fun gain(itemId: ItemId, amount: Number): ItemChange { - return ItemChange(itemId, amount.toDouble(), ChangeDirection.GAINED) - } - - fun lose(itemId: ItemId, amount: Number): ItemChange { - return ItemChange(itemId, amount.toDouble(), ChangeDirection.LOST) - } - - fun loseCoins(number: Double): ItemChange { - return lose(ItemId.COINS, number) - } - } -} - -data class LedgerEntry( - val transactionType: TransactionType, - val timestamp: Instant, - val items: List<ItemChange>, -) { - fun intoJson(profileId: UUID?): JsonObject { - val coinAmount = items.find { it.itemId == ItemId.COINS || it.itemId == ItemId.BITS }?.count - val nonCoins = items.find { it.itemId != ItemId.COINS && it.itemId != ItemId.BITS } - return JsonObject().apply { - addProperty("transactionType", transactionType.name) - addProperty("timestamp", timestamp.toEpochMilli().toString()) - addProperty("totalTransactionValue", coinAmount) - addProperty("itemId", nonCoins?.itemId?.string ?: "") - addProperty("itemAmount", nonCoins?.count ?: 0.0) - addProperty("profileId", profileId.toString()) - addProperty( - "playerId", - UUIDUtil.getPlayerUUID().toString() - ) - } - } -} |