diff options
Diffstat (limited to 'mod/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt')
-rw-r--r-- | mod/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mod/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt b/mod/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt new file mode 100644 index 0000000..d4a3932 --- /dev/null +++ b/mod/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt @@ -0,0 +1,29 @@ +package moe.nea.ledger + +import com.google.gson.JsonObject +import moe.nea.ledger.gen.ItemIds +import java.time.Instant +import java.util.UUID + +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 == ItemIds.SKYBLOCK_BIT }?.count + val nonCoins = items.find { it.itemId != ItemId.COINS && it.itemId != ItemIds.SKYBLOCK_BIT } + 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", + MCUUIDUtil.getPlayerUUID().toString() + ) + } + } +}
\ No newline at end of file |