Golang wrapper around the official Battlerite API
This project is licensed under the MIT License - see the LICENSE.md file for details
Run this in console to install
go get github.com/LightBoat9/battleritego
import (
"github.com/LightBoat9/battleritego"
)
Gather data from the API using the Client type. Instance a Client type using an API key. Register an app and get an API key here.
client := battleritego.Client{ APIKey }
- GetStatus()(Status, error)
Return a Status instance, and an error if one occurs.
Contains information about the current status of the gamelocker API.
- Fields
Type string
ID string
Release string
Version string
- Example Use
status, err := client.GetStatus()
if err != nil {
fmt.Println("Error:", err)
}
fmt.Printf("Current Version %s was released on %s", status.Version, status.Release)
- GetPlayer(id string) (Player, error)
- id string - The user ID of the player
Returns a Player by their ID, and an error if one occurs.
- GetPlayersFiltered(filter PlayerFilter) ([]Player, error)
- filter PlayerFilter - The filter to search for players see PlayerFilter struct below
Returns a slice of Players based on the filter, and an error if one occurs.
Contains filters for searching players with GetPlayersFiltered. Note that only one filter parameter should be used at a time.
- Fields
Names []string
UserIDs []int
SteamIDs []int
Contains information about a single battlerite user.
- Fields
Type string
ID int
LinkSelf string
TitleID string
Name string
Picture int
Wins int
Losses int
GradeScore int
TimePlayed int
Ranked2v2Wins int
Ranked2v2Loses int
Ranked3v3Wins int
Ranked3v3Losses int
Unranked2v2Wins int
Unranked2v2Losses int
Unranked3v3Wins int
Unranked3v3Losses int
BrawlWins int
BrawlLosses int
BattlegroundsWins int
BattlegroundsLosses int
AccountXP int
AccountLevel int
TwitchAccountLinked int
VsAiPlayed int
RatingMean int
RatingDev int
CharacterXP map[string]int
CharacterWins map[string]int
CharacterLosses map[string]int
CharacterKills map[string]int
CharacterDeaths map[string]int
CharacterTimePlayed map[string]int
CharacterRanked2v2Wins map[string]int
CharacterRanked2v2Losses map[string]int
CharacterRanked3v3Wins map[string]int
CharacterRanked3v3Losses map[string]int
CharacterUnranked2v2Wins map[string]int
CharacterUnranked2v2Losses map[string]int
CharacterUnranked3v3Wins map[string]int
CharacterUnranked3v3Losses map[string]int
CharacterBrawlWins map[string]int
CharacterBrawlLosses map[string]int
CharacterBattlegroundsWins map[string]int
CharacterBattlegroundsLosses map[string]int
CharacterLevels map[string]int
Every "Character" map[string]int contains the following keys representing the battlerite champions.
"Lucie", "Sirius", "Iva", "Jade", "RuhKaan",
"Oldur", "Ashka", "Varesh", "Pearl", "Taya",
"Poloma", "Croak", "Freya", "Jumong", "Shifu",
"Ezmo", "Bakko", "Rook", "Pestilus", "Destiny",
"Raigon", "Blossum", "Thorn", "Alysia", "Jamila",
"Ulric"
Example Use
// Get one player by ID
player, err := client.GetPlayer(776450744541908992)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Printf("\nPlayer %s has %d total wins! With Taya they have %d wins!",
player.Name, player.Wins, player.CharacterWins["Taya"])
// Get multiple players by Name
filter := battlerite.PlayerFilter{
Names: []string{"Averse", "ProsteR18", "Aldys"},
}
players, err := client.GetPlayersFiltered(filter)
if err != nil {
fmt.Println("Error:", err)
}
playerNames := []string{}
for _, plr := range players {
playerNames = append(playerNames, plr.Name)
}
fmt.Printf("\n%d players found! Their names are %s", len(players), strings.Join(playerNames, ", "))
- GetTeamsFiltered(filter TeamFilter) ([]Team, error)
- filter TeamFilter - the filter to search for teams see TeamFilter below.
Returns a slice of Teams based on the filter, and an error if one occurs.
Contains filters for searching tean with GetTeamsFiltered. Note that both filter parameters are required.
- Fields
Season int
PlayerIDs []int
Contains information about a battlerite team.
- Fields
Type string
ID int
Name string
ShardID string
TitleID string
PlacementGamesLeft int
Avatar int
Wins int
Losses int
Members []int
Division int
DivisionRating int
TopDivision int
TopDivisionRating int
League int
TopLeague int
Assets map[string]interface{}
- Example Use
teamFilter := battlerite.TeamFilter{
Season: 6,
PlayerIDs: []int{5983},
}
teams, err := client.GetTeamsFiltered(teamFilter)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Printf("%+v\n", teams)
- GetMatch(id string) (Match, error) id string - id of the match to return
Returns a Match and an error if one occurs
- GetMatchesFiltered(filter MatchFilter) ([]Match, error) filter MatchFilter - the filter to search for matches
Returns a slice of Matches and an error if one occurs
- MatchFilter struct
Contains filters for searching for Matches using GetMatchesFiltered.
PageOffset int
PageLimit int
Sort string
CreatedAtStart string
CreatedAtEnd string
PlayerIDs []string
PatchVersion []string
- Match struct
Contains information about a single battlerite Match.
Type string
ID string
LinkSelf string
CreatedAt string
Duration int
GameMode string
PatchVersion string
ShardID string
TitleID string
MapType string
MapID string
Asset Asset
Participants []Participant
Rosters []Roster
MatchPlayers []MatchPlayer
Rounds []Round
Spectators interface{}
- Example Use
// Get a single match by ID
match, err := client.GetMatch("3A7A00AF2CFF4356B94951CD4A59610B")
if err != nil {
log.Fatal(err)
}
fmt.Printf("\nThe match %s was created on %s", match.ID, match.CreatedAt)
// Get a slice of Matches by MatchFilter
matchFilter := battlerite.MatchFilter{
PageLimit: 2,
}
matches, err := client.GetMatchesFiltered(matchFilter)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d matches!", len(matches))
Each match contains events that are stored as telementry data.
-
GetTelementry(URL string) (Telementry, error)
- URL string - The URL of the data, can be found from a match under .Assets.URL
-
Example Use
Once you have a match you can search for telementry data using the matches URL in Assets.URL
match, err := client.GetMatch("3A7A00AF2CFF4356B94951CD4A59610B")
if err != nil {
log.Fatal(err)
}
telemetry, err := client.GetTelemetry(match.Asset.URL)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", telemetry) // Prints data with keys
Stores all of the events of a given match. More information on each event type below.
- Fields
MatchStart MatchStart
RoundEvents []RoundEvent
UserRoundSpells []UserRoundSpell
DeathEvents []DeathEvent
MatchReservedUsers []MatchReservedUser
QueueEvents []QueueEvent
TeamUpdateEvents []TeamUpdateEvent
ServerShutdown ServerShutdown
RoundFinishedEvents []RoundFinishedEvent
MatchFinishedEvent MatchFinishedEvent
A telemetry event containing information at a matches start.
- Fields
Type string
Cursor int
Time int
MatchID string
ExternalMatchID string
Version string
EventType string
GameMode int
MapID string
TeamSize int
Region string
A telemetry event containing information about various events during a round.
- Fields
Type string
Cursor int
Time int
MatchID string
ExternalMatchID string
UserID string
Round int
Character int
EventType string
Value int
TimeIntoRound int
A telemetry event containing information about a characters ability use.
- Fields
Type string
Cursor int
Time int
AccountID string
MatchID string
Round int
Character int
TypeID int
SourceTypeID int
ScoreType string
Value int
A telemetry event containing information about a characters death.
- Fields
Type string
Cursor int
Time int
MatchID string
ExternalMatchID string
UserID string
A telemetry event containing information about a match user.
- Fields
Type string
Cursor int
Time int
AccountID string
MatchID string
ServerType string
CharacterLevel int
TeamID string
TotalTimePlayed int
CharacterTimePlayed int
Character int
Team int
RankingType string
Mount int
Attachment int
Outfit int
Emote int
League int
Division int
DivisionRating int
SeasonID int
A telemetry event containing information about a user's queue. It contains RegionSample information, see below for more details.
- Fields
Type string
Cursor int
Time int
UserID string
TeamID string
SessionID string
Season int
EventType string
TimeJoinedQueue string
TimeInQueue float64
Character int
CharacterArchetype int
QueueTypes []interface{}
LimitMatchmakingRange bool
RegionSamples []RegionSample
PreferedRegion string
RankingType string
League int
Division int
DivisionRating int
TeamSize int
TeamMembers interface{}
PlacementGamesLeft int
MatchID string
MatchRegion string
TeamSide int
AutoMatchmaking bool
Contains information about a user's region during a QueueEvent.
- Fields
Region string
LatencyMS int
A telemetry event containing information about a team data update.
- Fields
Type string
Cursor int
Time int
Season int
TeamID string
MatchID string
ExternalMatchID string
UserIDs []int
Mode string
League int
PrevLeague int
PrevDivision int
Division int
PrevDivisionRating int
DivisionRating int
PrevWins int
Wins int
PrevLosses int
Losses int
RankingChangeType string
PrevPlacementGamesLeft int
PlacementGamesLeft int
MatchRegion string
A telemetry event containing information about a battlerite server's closing.
- Fields
Type string
Cursor int
Time int
MatchID string
ExternalMatchID string
MatchTime int
Reason string
A telemetry event containing information about the end of a round. Contains PlayerStats information, more details below.
- Fields
Type string
Cursor int
Time int
MatchID string
ExternalMatchID string
Round int
RoundLength int
WinningTeam int
PlayerStats []PlayerStats
Contains information about a players stats at the end of a round as part of a RoundFinishedEvent.
- Fields
UserID string
Kills int
Deaths int
Score int
DamageDone int
DamageReceived int
HealingDone int
HealingReceived int
DisablesDone int
DisablesReceived int
EnergyGained int
EnergyUsed int
TimeAlive int
AbilityUses int
A telemetry event containing information about the end of a match.
- Fields
Type string
Cursor int
Time int
TeamOneScore int
TeamTwoScore int
MatchLength int
MatchID string
ExternalMatchID string
Leavers interface{}
Region string