func (b *TeamBan) GetChampion(client *datadragon.Client) (datadragon.ChampionDataExtended, error) {
	return client.GetChampionByID(strconv.Itoa(b.ChampionID))
}
GetChampion returns the champion that was banned
package lol
import (
	"sort"
	"strconv"
	"github.com/KnutZuidema/golio/datadragon"
	"github.com/KnutZuidema/golio/static"
)
type ChampionInfo struct {
	FreeChampionIDsForNewPlayers []int `json:"freeChampionIDsForNewPlayers"`
	FreeChampionIDs              []int `json:"freeChampionIDs"`
	MaxNewPlayerLevel            int   `json:"maxNewPlayerLevel"`
}
func (i *ChampionInfo) GetChampionsForNewPlayers(client *datadragon.Client) ([]datadragon.ChampionDataExtended, error) {
	res := make([]datadragon.ChampionDataExtended, 0, len(i.FreeChampionIDsForNewPlayers))
	for _, id := range i.FreeChampionIDsForNewPlayers {
		champion, err := client.GetChampionByID(strconv.Itoa(id))
		if err != nil {
			return nil, err
		}
		res = append(res, champion)
	}
	return res, nil
}
func (i *ChampionInfo) GetChampions(client *datadragon.Client) ([]datadragon.ChampionDataExtended, error) {
	res := make([]datadragon.ChampionDataExtended, 0, len(i.FreeChampionIDsForNewPlayers))
	for _, id := range i.FreeChampionIDs {
		champion, err := client.GetChampionByID(strconv.Itoa(id))
		if err != nil {
			return nil, err
		}
		res = append(res, champion)
	}
	return res, nil
}
type ChampionMastery struct {
	ChestGranted                 bool   `json:"chestGranted"`
	ChampionLevel                int    `json:"championLevel"`
	ChampionPoints               int    `json:"championPoints"`
	ChampionID                   int    `json:"championId"`
	ChampionPointsUntilNextLevel int    `json:"championPointsUntilNextLevel"`
	LastPlayTime                 int    `json:"lastPlayTime"`
	TokensEarned                 int    `json:"tokensEarned"`
	ChampionPointsSinceLastLevel int    `json:"championPointsSinceLastLevel"`
	SummonerID                   string `json:"summonerId"`
}
func (m *ChampionMastery) GetSummoner(client *Client) (*Summoner, error) {
	return client.Summoner.GetByID(m.SummonerID)
}
func (m *ChampionMastery) GetChampion(client *datadragon.Client) (datadragon.ChampionDataExtended, error) {
	return client.GetChampionByID(strconv.Itoa(m.ChampionID))
}
type LeagueList struct {
	LeagueID      string        `json:"leagueId"`
	Tier          string        `json:"tier"`
	Entries       []*LeagueItem `json:"entries"`
	Queue         string        `json:"queue"`
	Name          string        `json:"name"`
	sortedEntries []*LeagueItem
}
func (l *LeagueList) GetRank(i int) *LeagueItem {
	if l.sortedEntries == nil || len(l.sortedEntries) != len(l.Entries) {
		l.sortedEntries = make([]*LeagueItem, len(l.Entries))
		copy(l.sortedEntries, l.Entries)
		sort.Slice(l.sortedEntries, func(i, j int) bool {
			return l.sortedEntries[i].LeaguePoints > l.sortedEntries[j].LeaguePoints
		})
	}
	return l.sortedEntries[i]
}
type LeagueItem struct {
	QueueType    string      `json:"queueType"`
	SummonerName string      `json:"summonerName"`
	HotStreak    bool        `json:"hotStreak"`
	MiniSeries   *MiniSeries `json:"miniSeries"`
	Wins         int         `json:"wins"`
	Veteran      bool        `json:"veteran"`
	Losses       int         `json:"losses"`
	FreshBlood   bool        `json:"freshBlood"`
	Inactive     bool        `json:"inactive"`
	Tier         string      `json:"tier"`
	Rank         string      `json:"rank"`
	SummonerID   string      `json:"summonerId"`
	LeaguePoints int         `json:"leaguePoints"`
}
func (i *LeagueItem) GetSummoner(client *Client) (*Summoner, error) {
	return client.Summoner.GetByID(i.SummonerID)
}
type MiniSeries struct {
	Progress string `json:"progress"`
	Losses   int    `json:"losses"`
	Target   int    `json:"target"`
	Wins     int    `json:"wins"`
}
type Match struct {
	SeasonID int `json:"seasonId"`
	QueueID int `json:"queueId"`
	GameID  int `json:"gameId"`
	ParticipantIdentities []*ParticipantIdentity `json:"participantIdentities"`
	GameVersion string `json:"gameVersion"`
	PlatformID string `json:"platformId"`
	GameMode string `json:"gameMode"`
	MapID int `json:"mapId"`
	GameType string `json:"gameType"`
	Teams []*TeamStats `json:"teams"`
	Participants []*Participant `json:"participants"`
	GameDuration int `json:"gameDuration"`
	GameCreation int `json:"gameCreation"`
}
func (m *Match) GetSeason(client *static.Client) (static.Season, error) {
	return client.GetSeason(m.SeasonID)
}
func (m *Match) GetQueue(client *static.Client) (static.Queue, error) {
	return client.GetQueue(m.QueueID)
}
func (m *Match) GetMap(client *static.Client) (static.Map, error) {
	return client.GetMap(m.MapID)
}
func (m *Match) GetGameType(client *static.Client) (static.GameType, error) {
	return client.GetGameType(m.GameType)
}
func (m *Match) GetGameMode(client *static.Client) (static.GameMode, error) {
	return client.GetGameMode(m.GameMode)
}
type ParticipantIdentity struct {
	Player        *Player `json:"player"`
	ParticipantID int     `json:"participantId"`
}
type Player struct {
	CurrentPlatformID string `json:"currentPlatformId"`
	SummonerName      string `json:"summonerName"`
	MatchHistoryURI   string `json:"matchHistoryUri"`
	PlatformID string `json:"platformId"`
	CurrentAccountID string `json:"currentAccountId"`
	ProfileIcon      int    `json:"profileIcon"`
	SummonerID string `json:"summonerId"`
	AccountID string `json:"accountId"`
}
func (p *Player) GetSummoner(client *Client) (*Summoner, error) {
	return client.Summoner.GetByID(p.SummonerID)
}
func (p *Player) GetProfileIcon(client *datadragon.Client) (datadragon.ProfileIcon, error) {
	return client.GetProfileIcon(p.ProfileIcon)
}
type TeamStats struct {
	FirstDragon bool `json:"firstDragon"`
	FirstInhibitor bool `json:"firstInhibitor"`
	Bans []*TeamBan `json:"bans"`
	BaronKills int `json:"baronKills"`
	FirstRiftHerald bool `json:"firstRiftHerald"`
	FirstBaron bool `json:"firstBaron"`
	RiftHeraldKills int `json:"riftHeraldKills"`
	FirstBlood bool `json:"firstBlood"`
	TeamID int `json:"teamId"`
	FirstTower bool `json:"firstTower"`
	VilemawKills int `json:"vilemawKills"`
	InhibitorKills int `json:"inhibitorKills"`
	TowerKills int `json:"towerKills"`
	DominionVictoryScore int `json:"dominionVictoryScore"`
	Win string `json:"win"`
	DragonKills int `json:"dragonKills"`
}
type TeamBan struct {
	PickTurn int `json:"pickTurn"`
	ChampionID int `json:"championId"`
}