All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.kevcodez.pubg.model.season.PlayerSeason.kt Maven / Gradle / Ivy

There is a newer version: 1.0.0
Show newest version
package de.kevcodez.pubg.model.season

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ArrayNode

@JsonIgnoreProperties(ignoreUnknown = true)
data class PlayerSeason(

    @JsonProperty("attributes")
    val attributes: SeasonAttributes,

    @JsonProperty("relationships")
    val relationships: SeasonRelationships
)

data class SeasonAttributes(
    val gameModeStats: GameModeStats
)

@JsonIgnoreProperties(ignoreUnknown = true)
data class GameModeStats(

    @JsonProperty("duo")
    val duo: PlayerSeasonStats,

    @JsonProperty("duo-fpp")
    val duoFpp: PlayerSeasonStats,

    @JsonProperty("solo")
    val solo: PlayerSeasonStats,

    @JsonProperty("solo-fpp")
    val soloFpp: PlayerSeasonStats,

    @JsonProperty("squad")
    val squad: PlayerSeasonStats,

    @JsonProperty("squad-fpp")
    val squadFpp: PlayerSeasonStats

)

@JsonIgnoreProperties(ignoreUnknown = true)
class SeasonRelationships {

    lateinit var matchesDuo: List
    lateinit var matchesDuoFpp: List
    lateinit var matchesSolo: List
    lateinit var matchesSoloFpp: List
    lateinit var matchesSquad: List
    lateinit var matchesSquadFpp: List
    lateinit var seasonId: String
    lateinit var playerId: String

    @JsonProperty("matchesSolo")
    private fun unpackMatchesSolo(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesSolo = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("matchesSoloFPP")
    private fun unpackMatchesSoloFpp(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesSoloFpp = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("matchesDuo")
    private fun unpackMatchesDuo(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesDuo = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("matchesDuoFPP")
    private fun unpackMatchesDuoFpp(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesDuoFpp = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("matchesSquad")
    private fun unpackMatchesSquad(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesSquad = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("matchesSquadFPP")
    private fun unpackMatchesSquadFpp(matches: JsonNode) {
        val data = matches.get("data") as ArrayNode

        matchesSquadFpp = data.map { it.get("id").textValue() }.toList()
    }

    @JsonProperty("player")
    private fun unpackPlayerId(player: JsonNode) {
        playerId = player.get("data").get("id").textValue()
    }

    @JsonProperty("season")
    private fun unpackSeasonId(season: JsonNode) {
        seasonId = season.get("data").get("id").textValue()
    }

}

@JsonIgnoreProperties(ignoreUnknown = true)
data class PlayerSeasonStats(
    val assists: Int,
    val bestRankPoint: Double,
    val boosts: Int,
    val dBNOs: Double,
    val dailyKills: Int,
    val dailyWins: Int,
    val damageDealt: Double,
    val days: Int,
    val headshotKills: Int,
    val heals: Int,
    val killPoints: Double,
    val kills: Int,
    val longestKill: Double,
    val longestTimeSurvived: Double,
    val losses: Int,
    val maxKillStreaks: Int,
    val mostSurvivalTime: Double,
    val rankPoints: Double,
    val revives: Int,
    val rideDistance: Double,
    val roadKills: Int,
    val roundMostKills: Int,
    val roundsPlayed: Int,
    val suicides: Int,
    val swimDistance: Double,
    val teamKills: Int,
    val timeSurvived: Double,
    val top10s: Int,
    val vehicleDestroys: Int,
    val walkDistance: Double,
    val weaponsAcquired: Int,
    val weeklyKills: Int,
    val weeklyWins: Int,
    val winPoints: Double,
    val wins: Int
)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy