// This file was generated from JSON Schema using quicktype, do not modify it directly. // To parse and unparse this JSON data, add this code to your project and do: // // qtmodels, err := UnmarshalQtmodels(bytes) // bytes, err = qtmodels.Marshal() package qtmodels import ( "bytes" "encoding/json" "errors" ) type Qtmodels []Qtmodel func UnmarshalQtmodels(data []byte) (Qtmodels, error) { var r Qtmodels err := json.Unmarshal(data, &r) return r, err } func (r *Qtmodels) Marshal() ([]byte, error) { return json.Marshal(r) } type Qtmodel struct { Date float64 `json:"date"` Request Request `json:"request"` Response QtmodelResponse `json:"response"` } func UnmarshalQtmodel(data []byte) (Qtmodel, error) { var r Qtmodel err := json.Unmarshal(data, &r) return r, err } func (r *Qtmodel) Marshal() ([]byte, error) { return json.Marshal(r) } type Request struct { Call Call `json:"call"` Headers Headers `json:"headers"` Ident string `json:"ident"` } type Call struct { Args Args `json:"args"` Ident string `json:"ident"` Name string `json:"name"` } type Args struct { Day *int64 `json:"day,omitempty"` Heroes []ArgsHero `json:"heroes"` ID *string `json:"id,omitempty"` Pet *int64 `json:"pet,omitempty"` Pets []int64 `json:"pets"` Progress []ArgsProgress `json:"progress"` Result *ArgsResult `json:"result,omitempty"` Season *int64 `json:"season,omitempty"` SlotID *int64 `json:"slotId,omitempty"` UserID *int64 `json:"userId,omitempty"` } type ArgsProgress struct { Attackers PurpleAttackers `json:"attackers"` B int64 `json:"b"` Defenders Ers `json:"defenders"` Seed int64 `json:"seed"` V int64 `json:"v"` } type PurpleAttackers struct { Heroes map[string]HeroValue `json:"heroes"` Input []Input `json:"input"` } type HeroValue struct { Energy int64 `json:"energy"` Extra *Extra `json:"extra,omitempty"` HP int64 `json:"hp"` IsDead bool `json:"isDead"` MaxHP *int64 `json:"maxHp,omitempty"` } type Extra struct { Sun int64 `json:"sun"` } type Ers struct { Heroes map[string]HeroValue `json:"heroes"` Input []interface{} `json:"input"` } type ArgsResult struct { Stars int64 `json:"stars"` Win bool `json:"win"` } type Headers struct { ContentType string `json:"Content-Type"` XAuthApplicationID string `json:"X-Auth-Application-Id"` XAuthNetworkIdent string `json:"X-Auth-Network-Ident"` XAuthPlayerID string `json:"X-Auth-Player-Id"` XAuthSessionID string `json:"X-Auth-Session-Id"` XAuthSessionKey string `json:"X-Auth-Session-Key"` XAuthSignature string `json:"X-Auth-Signature"` XAuthToken string `json:"X-Auth-Token"` XAuthUserID string `json:"X-Auth-User-Id"` XEnvLibraryVersion string `json:"X-Env-Library-Version"` XRequestID string `json:"X-Request-Id"` XRequestedWith string `json:"X-Requested-With"` XServerTime string `json:"X-Server-Time"` } type QtmodelResponse struct { Ident string `json:"ident"` Result ResponseResult `json:"result"` } type ResponseResult struct { Quests []Quest `json:"quests"` Response *ResultResponse `json:"response"` } type Quest struct { ID int64 `json:"id"` Progress int64 `json:"progress"` Reward QuestReward `json:"reward"` State int64 `json:"state"` } type QuestReward struct { Avatar *Avatar `json:"avatar,omitempty"` Coin map[string]*League `json:"coin,omitempty"` Consumable *RewardConsumable `json:"consumable,omitempty"` Gold *int64 `json:"gold,omitempty"` } type Consumable map[string]int64 type Avatar struct { Consumable } type RewardConsumable struct { Consumable } //type Avatar struct { // The634 int64 `json:"634"` //} // //type RewardConsumable struct { // The56 string `json:"56"` //} type ResultResponse struct { ArePointsMax *bool `json:"arePointsMax,omitempty"` Attack []Attack `json:"attack"` AvgLevel *string `json:"avgLevel,omitempty"` Battle *PurpleBattle `json:"battle,omitempty"` Battles []BattleElement `json:"battles"` ClanTries map[string]int64 `json:"clanTries,omitempty"` Day *string `json:"day,omitempty"` Defence []Attack `json:"defence"` EndTime *int64 `json:"endTime,omitempty"` Enemies []Enemy `json:"enemies"` EnemyClan *EnemyClan `json:"enemyClan,omitempty"` EnemyClanMembers map[string]EnemyClanMember `json:"enemyClanMembers,omitempty"` EnemyClanPoints *int64 `json:"enemyClanPoints,omitempty"` EnemyClanTries map[string]int64 `json:"enemyClanTries,omitempty"` EnemyID *string `json:"enemyId,omitempty"` EnemyPoints *string `json:"enemyPoints,omitempty"` EnemySlots map[string]EnemySlot `json:"enemySlots,omitempty"` FortificationVictoryPoints *int64 `json:"fortificationVictoryPoints,omitempty"` League *League `json:"league"` MyTries *int64 `json:"myTries,omitempty"` NextLockTime *int64 `json:"nextLockTime,omitempty"` NextWarTime *int64 `json:"nextWarTime,omitempty"` OurClanPoints *int64 `json:"ourClanPoints,omitempty"` OurSlots map[string]OurSlot `json:"ourSlots,omitempty"` Points *string `json:"points,omitempty"` Replay *PurpleReplay `json:"replay,omitempty"` Replays []ReplayElement `json:"replays"` Reward *ResponseReward `json:"reward"` Season *string `json:"season,omitempty"` Slot *Slot `json:"slot,omitempty"` SlotVictoryPoints *int64 `json:"slotVictoryPoints,omitempty"` Slots map[string]int64 `json:"slots,omitempty"` State *State `json:"state,omitempty"` Teams map[string]ResponseTeam `json:"teams,omitempty"` Users *Users `json:"users,omitempty"` Warriors map[string]int64 `json:"warriors,omitempty"` Win *bool `json:"win,omitempty"` } type Attack struct { AttackerID string `json:"attackerId"` DefenderID string `json:"defenderId"` FortificationPoints int64 `json:"fortificationPoints"` PreviousStatus string `json:"previousStatus"` ReplayID string `json:"replayId"` SlotID string `json:"slotId"` SlotPoints int64 `json:"slotPoints"` Time int64 `json:"time"` Win bool `json:"win"` } type PurpleBattle struct { Attackers map[string]PurpleAttacker `json:"attackers"` Defenders []map[string]PurpleDefender `json:"defenders"` Effects []interface{} `json:"effects"` Reward []interface{} `json:"reward"` Seed int64 `json:"seed"` StartTime int64 `json:"startTime"` Type string `json:"type"` TypeID string `json:"typeId"` UserID string `json:"userId"` } type PurpleAttacker struct { Agility *int64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *int64 `json:"armor,omitempty"` ArmorPenetration *int64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *int64 `json:"elementSpiritLevel,omitempty"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *int64 `json:"elementSpiritStar,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence *int64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *int64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *int64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins map[string]int64 `json:"skins,omitempty"` Slots *SkinsUnion `json:"slots"` Star int64 `json:"star"` Strength *int64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent,omitempty"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type Artifact struct { Level int64 `json:"level"` Star int64 `json:"star"` } type TitanCoinsSpent struct { Consumable Consumable `json:"consumable"` } type PurpleDefender struct { Agility *int64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *int64 `json:"elementSpiritLevel,omitempty"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *int64 `json:"elementSpiritStar,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence *float64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins *SkinsUnion `json:"skins"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` State HeroValue `json:"state"` Strength *float64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent,omitempty"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type BattleElement struct { Attackers map[string]FluffyAttacker `json:"attackers"` Defenders []map[string]FluffyDefender `json:"defenders"` Effects []interface{} `json:"effects"` EndTime int64 `json:"endTime"` ID string `json:"id"` Progress []interface{} `json:"progress"` Result BattleResult `json:"result"` Reward []interface{} `json:"reward"` Seed int64 `json:"seed"` StartTime int64 `json:"startTime"` Type string `json:"type"` TypeID string `json:"typeId"` UserID string `json:"userId"` } type FluffyAttacker struct { Agility *float64 `json:"agility,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color int64 `json:"color"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence float64 `json:"intelligence"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *int64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *int64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins map[string]int64 `json:"skins,omitempty"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` Strength int64 `json:"strength"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type FluffyDefender struct { Agility *float64 `json:"agility,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color int64 `json:"color"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence float64 `json:"intelligence"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *float64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *int64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins map[string]int64 `json:"skins,omitempty"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` State *HeroValue `json:"state,omitempty"` Strength float64 `json:"strength"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type BattleResult struct { BattleOrder *int64 `json:"battleOrder,omitempty"` EnemyPlace *string `json:"enemyPlace,omitempty"` NewPlace *string `json:"newPlace,omitempty"` OldPlace *string `json:"oldPlace,omitempty"` ServerVersion int64 `json:"serverVersion"` Stars int64 `json:"stars"` Win bool `json:"win"` } type Enemy struct { Heroes []EnemyHero `json:"heroes"` Place string `json:"place"` Power string `json:"power"` User EnemyClanMember `json:"user"` UserID string `json:"userId"` } type ArenaHero struct { Color *int64 `json:"color,omitempty"` ID int64 `json:"id"` Level int64 `json:"level"` Power *int64 `json:"power,omitempty"` Star int64 `json:"star"` Type *string `json:"type,omitempty"` } type EnemyClanMember struct { AllowPm string `json:"allowPm"` AvatarID string `json:"avatarId"` Experience *int64 `json:"experience,omitempty"` ClanID *string `json:"clanId"` ClanIcon *Icon `json:"clanIcon,omitempty"` ClanRole *string `json:"clanRole"` ClanTitle *string `json:"clanTitle,omitempty"` FrameID *int64 `json:"frameId"` ID string `json:"id"` IsChatModerator bool `json:"isChatModerator"` LastLoginTime string `json:"lastLoginTime"` LeagueID *int64 `json:"leagueId"` Level string `json:"level"` Name string `json:"name"` ServerID string `json:"serverId"` } type Icon struct { FlagColor1 int64 `json:"flagColor1"` FlagColor2 int64 `json:"flagColor2"` FlagShape int64 `json:"flagShape"` IconColor int64 `json:"iconColor"` IconShape int64 `json:"iconShape"` } type EnemyClan struct { Country string `json:"country"` Description string `json:"description"` Disbanding bool `json:"disbanding"` FrameID int64 `json:"frameId"` ID string `json:"id"` Icon Icon `json:"icon"` Level string `json:"level"` MembersCount string `json:"membersCount"` MinLevel string `json:"minLevel"` OwnerID string `json:"ownerId"` RoleNames []interface{} `json:"roleNames"` ServerID string `json:"serverId"` Title string `json:"title"` TopActivity string `json:"topActivity"` TopDungeon string `json:"topDungeon"` } type EnemySlot struct { AttackerID *League `json:"attackerId"` PointsFarmed int64 `json:"pointsFarmed"` SlotID int64 `json:"slotId"` Status string `json:"status"` TargetMarkingUserID *int64 `json:"targetMarkingUserId,omitempty"` Team []map[string]EnemySlotTeam `json:"team"` TotalPoints int64 `json:"totalPoints"` User EnemyClanMember `json:"user"` } type EnemySlotTeam struct { Color *int64 `json:"color,omitempty"` ID int64 `json:"id"` Level int64 `json:"level"` Power int64 `json:"power"` Star int64 `json:"star"` State HeroValue `json:"state"` Type string `json:"type"` } type OurSlot struct { AttackerID int64 `json:"attackerId"` PointsFarmed int64 `json:"pointsFarmed"` SlotID int64 `json:"slotId"` Status string `json:"status"` TargetMarkingUserID *int64 `json:"targetMarkingUserId,omitempty"` Team []map[string]EnemySlotTeam `json:"team"` TotalPoints int64 `json:"totalPoints"` User EnemyClanMember `json:"user"` } type PurpleReplay struct { Attackers map[string]TentacledAttacker `json:"attackers"` Defenders []map[string]TentacledDefender `json:"defenders"` Effects *EffectsUnion `json:"effects"` EndTime string `json:"endTime"` ID string `json:"id"` Progress *ProgressUnion `json:"progress"` Result PurpleResult `json:"result"` Reward []interface{} `json:"reward"` Seed string `json:"seed"` StartTime string `json:"startTime"` Type string `json:"type"` TypeID string `json:"typeId"` UserID string `json:"userId"` } type TentacledAttacker struct { Agility *float64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *League `json:"elementSpiritLevel"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *League `json:"elementSpiritStar"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID *League `json:"id"` Intelligence *float64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *float64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins *SkinsUnion `json:"skins"` Slots *PurpleSlots `json:"slots"` Star *League `json:"star"` Strength *float64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type TentacledDefender struct { Agility *int64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *int64 `json:"elementSpiritLevel,omitempty"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *int64 `json:"elementSpiritStar,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence *int64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *int64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins *SkinsUnion `json:"skins"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` State *HeroValue `json:"state,omitempty"` Strength *float64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type EffectsClass struct { Attackers EffectsAttackers `json:"attackers"` Defenders EffectsDefenders `json:"defenders"` } type EffectsAttackers struct { PercentBuffAllHealing int64 `json:"percentBuffAll_healing"` PercentBuffByPerkCastSpeed10 int64 `json:"percentBuffByPerk_castSpeed_10"` PercentBuffByPerkEnergyIncrease7 int64 `json:"percentBuffByPerk_energyIncrease_7"` PercentIncomeDamageReducePhysical int64 `json:"percentIncomeDamageReduce_physical"` } type EffectsDefenders struct { PercentBuffByPerkCastSpeed10 int64 `json:"percentBuffByPerk_castSpeed_10"` PercentBuffByPerkEnergyIncrease7 int64 `json:"percentBuffByPerk_energyIncrease_7"` } type ReplayProgressClass struct { Attackers FluffyAttackers `json:"attackers"` B int64 `json:"b"` Defenders PurpleDefenders `json:"defenders"` Seed int64 `json:"seed"` V int64 `json:"v"` } type FluffyAttackers struct { Heroes *Heroes `json:"heroes"` Input []Input `json:"input"` } type PurpleDefenders struct { Heroes *Heroes `json:"heroes"` Input []interface{} `json:"input"` } type PurpleProgress struct { Attackers Ers `json:"attackers"` B int64 `json:"b"` Defenders FluffyDefenders `json:"defenders"` Seed int64 `json:"seed"` V int64 `json:"v"` } type FluffyDefenders struct { Heroes []interface{} `json:"heroes"` Input []interface{} `json:"input"` } type PurpleResult struct { BattleOrder *int64 `json:"battleOrder,omitempty"` EnemyPlace *string `json:"enemyPlace,omitempty"` NewPlace *string `json:"newPlace,omitempty"` OldPlace *string `json:"oldPlace,omitempty"` ScoreAttack *int64 `json:"scoreAttack,omitempty"` ScoreDefence *int64 `json:"scoreDefence,omitempty"` ServerVersion int64 `json:"serverVersion"` Stars *int64 `json:"stars,omitempty"` Tier *string `json:"tier,omitempty"` Win *bool `json:"win,omitempty"` } type ReplayElement struct { Attackers map[string]StickyAttacker `json:"attackers"` Defenders []map[string]StickyDefender `json:"defenders"` Effects []interface{} `json:"effects"` EndTime string `json:"endTime"` ID string `json:"id"` Progress []ReplayProgressClass `json:"progress"` Result FluffyResult `json:"result"` Reward []interface{} `json:"reward"` Seed string `json:"seed"` StartTime string `json:"startTime"` Type string `json:"type"` TypeID string `json:"typeId"` UserID string `json:"userId"` } type StickyAttacker struct { Agility *float64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *int64 `json:"elementSpiritLevel,omitempty"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *int64 `json:"elementSpiritStar,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence *float64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *float64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins *SkinsUnion `json:"skins"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` Strength *float64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type StickyDefender struct { Agility *float64 `json:"agility,omitempty"` Anticrit *int64 `json:"anticrit,omitempty"` Antidodge *int64 `json:"antidodge,omitempty"` Armor *float64 `json:"armor,omitempty"` ArmorPenetration *float64 `json:"armorPenetration,omitempty"` Artifacts []Artifact `json:"artifacts"` Color *int64 `json:"color,omitempty"` CurrentSkin *int64 `json:"currentSkin,omitempty"` Dodge *float64 `json:"dodge,omitempty"` Element *string `json:"element,omitempty"` ElementArmor *float64 `json:"elementArmor,omitempty"` ElementAttack *float64 `json:"elementAttack,omitempty"` ElementSpiritLevel *int64 `json:"elementSpiritLevel,omitempty"` ElementSpiritPower *float64 `json:"elementSpiritPower,omitempty"` ElementSpiritStar *int64 `json:"elementSpiritStar,omitempty"` FavorPetID *int64 `json:"favorPetId,omitempty"` FavorPower *int64 `json:"favorPower,omitempty"` HP *float64 `json:"hp,omitempty"` ID int64 `json:"id"` Intelligence *float64 `json:"intelligence,omitempty"` Level int64 `json:"level"` Lifesteal *int64 `json:"lifesteal,omitempty"` MagicPenetration *float64 `json:"magicPenetration,omitempty"` MagicPower *float64 `json:"magicPower,omitempty"` MagicResist *float64 `json:"magicResist,omitempty"` Name interface{} `json:"name"` Perks []int64 `json:"perks"` PetID *int64 `json:"petId,omitempty"` PhysicalAttack *float64 `json:"physicalAttack,omitempty"` PhysicalCritChance *float64 `json:"physicalCritChance,omitempty"` Power int64 `json:"power"` Runes []int64 `json:"runes"` Scale *float64 `json:"scale,omitempty"` Skills map[string]int64 `json:"skills"` Skin *int64 `json:"skin,omitempty"` Skins *SkinsUnion `json:"skins"` Slots *PurpleSlots `json:"slots"` Star int64 `json:"star"` State *HeroValue `json:"state,omitempty"` Strength *float64 `json:"strength,omitempty"` TitanCoinsSpent *TitanCoinsSpent `json:"titanCoinsSpent,omitempty"` TitanGiftLevel *int64 `json:"titanGiftLevel,omitempty"` Type string `json:"type"` XP int64 `json:"xp"` } type FluffyResult struct { ServerVersion int64 `json:"serverVersion"` Stars int64 `json:"stars"` Win bool `json:"win"` } type ResponseReward struct { Coin Coin `json:"coin"` } type Coin struct { The1 int64 `json:"1"` } type Slot struct { AttackerID int64 `json:"attackerId"` PointsFarmed int64 `json:"pointsFarmed"` SlotID string `json:"slotId"` Status string `json:"status"` Team []map[string]EnemySlotTeam `json:"team"` TotalPoints int64 `json:"totalPoints"` User EnemyClanMember `json:"user"` } type State struct { ArenaHeroes []ArenaHero `json:"arenaHeroes"` ArenaPlace string `json:"arenaPlace"` ArenaPower string `json:"arenaPower"` Battles int64 `json:"battles"` GrandCoin float64 `json:"grandCoin"` GrandCoinTime int64 `json:"grandCoinTime"` GrandHeroes [][]ArenaHero `json:"grandHeroes"` GrandPlace string `json:"grandPlace"` GrandPower string `json:"grandPower"` RewardFlag int64 `json:"rewardFlag"` RewardTime int64 `json:"rewardTime"` UserID string `json:"userId"` WINS int64 `json:"wins"` } type ResponseTeam struct { ClanDefenceHeroes ClanDefence `json:"clanDefence_heroes"` ClanDefenceTitans ClanDefence `json:"clanDefence_titans"` UserID int64 `json:"userId"` } type ClanDefence struct { Units map[string]ArenaHero `json:"units"` } type Users map[string]*EnemyClanMember type ArgsHero struct { Integer *int64 IntegerArray []int64 } func (x *ArgsHero) UnmarshalJSON(data []byte) error { x.IntegerArray = nil object, err := unmarshalUnion(data, &x.Integer, nil, nil, nil, true, &x.IntegerArray, false, nil, false, nil, false, nil, false) if err != nil { return err } if object { } return nil } func (x *ArgsHero) MarshalJSON() ([]byte, error) { return marshalUnion(x.Integer, nil, nil, nil, x.IntegerArray != nil, x.IntegerArray, false, nil, false, nil, false, nil, false) } type Input struct { Double *float64 String *string } func (x *Input) UnmarshalJSON(data []byte) error { object, err := unmarshalUnion(data, nil, &x.Double, nil, &x.String, false, nil, false, nil, false, nil, false, nil, false) if err != nil { return err } if object { } return nil } func (x *Input) MarshalJSON() ([]byte, error) { return marshalUnion(nil, x.Double, nil, x.String, false, nil, false, nil, false, nil, false, nil, false) } type League struct { Integer *int64 String *string } func (x *League) UnmarshalJSON(data []byte) error { object, err := unmarshalUnion(data, &x.Integer, nil, nil, &x.String, false, nil, false, nil, false, nil, false, nil, false) if err != nil { return err } if object { } return nil } func (x *League) MarshalJSON() ([]byte, error) { return marshalUnion(x.Integer, nil, nil, x.String, false, nil, false, nil, false, nil, false, nil, false) } type SkinsUnion struct { AnythingArray []interface{} IntegerMap map[string]int64 } func (x *SkinsUnion) UnmarshalJSON(data []byte) error { x.AnythingArray = nil x.IntegerMap = nil object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.AnythingArray, false, nil, true, &x.IntegerMap, false, nil, false) if err != nil { return err } if object { } return nil } func (x *SkinsUnion) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.AnythingArray != nil, x.AnythingArray, false, nil, x.IntegerMap != nil, x.IntegerMap, false, nil, false) } type PurpleSlots struct { IntegerArray []int64 IntegerMap map[string]int64 } func (x *PurpleSlots) UnmarshalJSON(data []byte) error { x.IntegerArray = nil x.IntegerMap = nil object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.IntegerArray, false, nil, true, &x.IntegerMap, false, nil, false) if err != nil { return err } if object { } return nil } func (x *PurpleSlots) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.IntegerArray != nil, x.IntegerArray, false, nil, x.IntegerMap != nil, x.IntegerMap, false, nil, false) } type EnemyHero struct { ArenaHero *ArenaHero ArenaHeroArray []ArenaHero } func (x *EnemyHero) UnmarshalJSON(data []byte) error { x.ArenaHeroArray = nil x.ArenaHero = nil var c ArenaHero object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.ArenaHeroArray, true, &c, false, nil, false, nil, false) if err != nil { return err } if object { x.ArenaHero = &c } return nil } func (x *EnemyHero) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.ArenaHeroArray != nil, x.ArenaHeroArray, x.ArenaHero != nil, x.ArenaHero, false, nil, false, nil, false) } type EffectsUnion struct { AnythingArray []interface{} EffectsClass *EffectsClass } func (x *EffectsUnion) UnmarshalJSON(data []byte) error { x.AnythingArray = nil x.EffectsClass = nil var c EffectsClass object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.AnythingArray, true, &c, false, nil, false, nil, false) if err != nil { return err } if object { x.EffectsClass = &c } return nil } func (x *EffectsUnion) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.AnythingArray != nil, x.AnythingArray, x.EffectsClass != nil, x.EffectsClass, false, nil, false, nil, false) } type ProgressUnion struct { PurpleProgress *PurpleProgress ReplayProgressClassArray []ReplayProgressClass } func (x *ProgressUnion) UnmarshalJSON(data []byte) error { x.ReplayProgressClassArray = nil x.PurpleProgress = nil var c PurpleProgress object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.ReplayProgressClassArray, true, &c, false, nil, false, nil, false) if err != nil { return err } if object { x.PurpleProgress = &c } return nil } func (x *ProgressUnion) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.ReplayProgressClassArray != nil, x.ReplayProgressClassArray, x.PurpleProgress != nil, x.PurpleProgress, false, nil, false, nil, false) } type Heroes struct { AnythingArray []interface{} HeroValueMap map[string]HeroValue } func (x *Heroes) UnmarshalJSON(data []byte) error { x.AnythingArray = nil x.HeroValueMap = nil object, err := unmarshalUnion(data, nil, nil, nil, nil, true, &x.AnythingArray, false, nil, true, &x.HeroValueMap, false, nil, false) if err != nil { return err } if object { } return nil } func (x *Heroes) MarshalJSON() ([]byte, error) { return marshalUnion(nil, nil, nil, nil, x.AnythingArray != nil, x.AnythingArray, false, nil, x.HeroValueMap != nil, x.HeroValueMap, false, nil, false) } func unmarshalUnion(data []byte, pi **int64, pf **float64, pb **bool, ps **string, haveArray bool, pa interface{}, haveObject bool, pc interface{}, haveMap bool, pm interface{}, haveEnum bool, pe interface{}, nullable bool) (bool, error) { if pi != nil { *pi = nil } if pf != nil { *pf = nil } if pb != nil { *pb = nil } if ps != nil { *ps = nil } dec := json.NewDecoder(bytes.NewReader(data)) dec.UseNumber() tok, err := dec.Token() if err != nil { return false, err } switch v := tok.(type) { case json.Number: if pi != nil { i, err := v.Int64() if err == nil { *pi = &i return false, nil } } if pf != nil { f, err := v.Float64() if err == nil { *pf = &f return false, nil } return false, errors.New("Unparsable number") } return false, errors.New("Union does not contain number") case float64: return false, errors.New("Decoder should not return float64") case bool: if pb != nil { *pb = &v return false, nil } return false, errors.New("Union does not contain bool") case string: if haveEnum { return false, json.Unmarshal(data, pe) } if ps != nil { *ps = &v return false, nil } return false, errors.New("Union does not contain string") case nil: if nullable { return false, nil } return false, errors.New("Union does not contain null") case json.Delim: if v == '{' { if haveObject { return true, json.Unmarshal(data, pc) } if haveMap { return false, json.Unmarshal(data, pm) } return false, errors.New("Union does not contain object") } if v == '[' { if haveArray { return false, json.Unmarshal(data, pa) } return false, errors.New("Union does not contain array") } return false, errors.New("Cannot handle delimiter") } return false, errors.New("Cannot unmarshal union") } func marshalUnion(pi *int64, pf *float64, pb *bool, ps *string, haveArray bool, pa interface{}, haveObject bool, pc interface{}, haveMap bool, pm interface{}, haveEnum bool, pe interface{}, nullable bool) ([]byte, error) { if pi != nil { return json.Marshal(*pi) } if pf != nil { return json.Marshal(*pf) } if pb != nil { return json.Marshal(*pb) } if ps != nil { return json.Marshal(*ps) } if haveArray { return json.Marshal(pa) } if haveObject { return json.Marshal(pc) } if haveMap { return json.Marshal(pm) } if haveEnum { return json.Marshal(pe) } if nullable { return json.Marshal(nil) } return nil, errors.New("Union must not be null") }