Documentation
¶
Index ¶
- Constants
- Variables
- func ConstructPsqlConnectURL(addr, username, password string) string
- type GameStatistics
- type Int16ModeCount
- type PostgresBestTeammatePlayerRanking
- type PostgresGame
- type PostgresGameEvent
- type PostgresGuild
- type PostgresOtherPlayerRanking
- type PostgresPlayerRanking
- type PostgresUser
- type PostgresUserActionRanking
- type PostgresUserGame
- type PostgresUserMostFrequentFirstTargetRanking
- type PostgresUserMostFrequentKilledByanking
- type PostgresWorstTeammatePlayerRanking
- type PsqlInterface
- func (psqlInterface *PsqlInterface) AddEvent(event *PostgresGameEvent) error
- func (psqlInterface *PsqlInterface) AddInitialGame(game *PostgresGame) (uint64, error)
- func (psqlInterface *PsqlInterface) BestTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
- func (psqlInterface *PsqlInterface) BestTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
- func (psqlInterface *PsqlInterface) Close()
- func (psqlInterface *PsqlInterface) ColorRankingForPlayerOnServer(userID, guildID string) []*Int16ModeCount
- func (psqlInterface *PsqlInterface) DeleteAllGamesForServer(guildID string) error
- func (psqlInterface *PsqlInterface) DeleteAllGamesForUser(userID string) error
- func (psqlInterface *PsqlInterface) EnsureGuildExists(guildID uint64, guildName string) (*PostgresGuild, error)
- func (psqlInterface *PsqlInterface) EnsureUserExists(userID uint64) (*PostgresUser, error)
- func (psqlInterface *PsqlInterface) GetGame(guildID, connectCode, matchID string) (*PostgresGame, error)
- func (psqlInterface *PsqlInterface) GetGameEvents(matchID string) ([]*PostgresGameEvent, error)
- func (psqlInterface *PsqlInterface) GetGuild(guildID uint64) (*PostgresGuild, error)
- func (psqlInterface *PsqlInterface) GetGuildPremiumStatus(guildID string) (premium.Tier, int)
- func (psqlInterface *PsqlInterface) GetUser(userID uint64) (*PostgresUser, error)
- func (psqlInterface *PsqlInterface) GetUserByString(userID string) (*PostgresUser, error)
- func (psqlInterface *PsqlInterface) Init(addr string) error
- func (psqlInterface *PsqlInterface) LoadAndExecFromFile(filepath string) error
- func (psqlInterface *PsqlInterface) NamesRankingForPlayerOnServer(userID, guildID string) []*StringModeCount
- func (psqlInterface *PsqlInterface) NumGamesAsRole(userID string, role int16) int64
- func (psqlInterface *PsqlInterface) NumGamesAsRoleOnServer(userID, guildID string, role int16) int64
- func (psqlInterface *PsqlInterface) NumGamesPlayedByUser(userID string) int64
- func (psqlInterface *PsqlInterface) NumGamesPlayedByUserOnServer(userID, guildID string) int64
- func (psqlInterface *PsqlInterface) NumGamesPlayedOnGuild(guildID string) int64
- func (psqlInterface *PsqlInterface) NumGamesWonAsRoleOnServer(guildID string, role game.GameRole) int64
- func (psqlInterface *PsqlInterface) NumGuildsPlayedInByUser(userID string) int64
- func (psqlInterface *PsqlInterface) NumWins(userID string) int64
- func (psqlInterface *PsqlInterface) NumWinsAsRole(userID string, role int16) int64
- func (psqlInterface *PsqlInterface) NumWinsAsRoleOnServer(userID, guildID string, role int16) int64
- func (psqlInterface *PsqlInterface) NumWinsOnServer(userID, guildID string) int64
- func (psqlInterface *PsqlInterface) OptUserByString(userID string, opt bool) (bool, error)
- func (psqlInterface *PsqlInterface) OtherPlayersRankingForPlayerOnServer(userID, guildID string) []*PostgresOtherPlayerRanking
- func (psqlInterface *PsqlInterface) TotalGamesRankingForServer(guildID uint64) []*Uint64ModeCount
- func (psqlInterface *PsqlInterface) TotalWinRankingForServer(guildID uint64) []*PostgresPlayerRanking
- func (psqlInterface *PsqlInterface) TotalWinRankingForServerByRole(guildID uint64, role int16) []*PostgresPlayerRanking
- func (psqlInterface *PsqlInterface) UpdateGameAndPlayers(gameID int64, winType int16, endTime int64, players []*PostgresUserGame) error
- func (psqlInterface *PsqlInterface) UserFrequentFirstTarget(userID, guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
- func (psqlInterface *PsqlInterface) UserMostFrequentFirstTargetForServer(guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
- func (psqlInterface *PsqlInterface) UserMostFrequentKilledBy(userID, guildID string) []*PostgresUserMostFrequentKilledByanking
- func (psqlInterface *PsqlInterface) UserMostFrequentKilledByServer(guildID string) []*PostgresUserMostFrequentKilledByanking
- func (psqlInterface *PsqlInterface) UserWinByActionAndRole(userdID, guildID string, action string, role int16) []*PostgresUserActionRanking
- func (psqlInterface *PsqlInterface) WorstTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
- func (psqlInterface *PsqlInterface) WorstTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
- type PsqlParameters
- type SimpleEvent
- type SimpleEventType
- type StringModeCount
- type Uint64ModeCount
Constants ¶
View Source
const SecsInADay = 86400
Variables ¶
View Source
var DiscussCode = fmt.Sprintf("%d", game.DISCUSS)
View Source
var TasksCode = fmt.Sprintf("%d", game.TASKS)
Functions ¶
func ConstructPsqlConnectURL ¶
Types ¶
type GameStatistics ¶ added in v0.0.24
type GameStatistics struct {
GameDuration time.Duration
WinType game.GameResult
NumMeetings int
NumDeaths int
NumVotedOff int
NumDisconnects int
Events []SimpleEvent
}
func StatsFromGameAndEvents ¶ added in v0.0.24
func StatsFromGameAndEvents(pgame *PostgresGame, events []*PostgresGameEvent) GameStatistics
func (*GameStatistics) FormatDurationAndWin ¶ added in v0.0.24
func (stats *GameStatistics) FormatDurationAndWin() string
TODO localize
func (*GameStatistics) ToDiscordEmbed ¶ added in v0.0.24
func (stats *GameStatistics) ToDiscordEmbed(combinedID string, sett *settings.GuildSettings) *discordgo.MessageEmbed
func (*GameStatistics) ToString ¶ added in v0.0.24
func (stats *GameStatistics) ToString() string
type Int16ModeCount ¶ added in v0.0.24
type PostgresGame ¶
type PostgresGameEvent ¶
type PostgresGuild ¶
type PostgresPlayerRanking ¶
type PostgresUser ¶
type PostgresUserGame ¶
type PsqlInterface ¶
func (*PsqlInterface) AddEvent ¶
func (psqlInterface *PsqlInterface) AddEvent(event *PostgresGameEvent) error
func (*PsqlInterface) AddInitialGame ¶
func (psqlInterface *PsqlInterface) AddInitialGame(game *PostgresGame) (uint64, error)
func (*PsqlInterface) BestTeammateByRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) BestTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
func (*PsqlInterface) BestTeammateForServerByRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) BestTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
func (*PsqlInterface) Close ¶
func (psqlInterface *PsqlInterface) Close()
func (*PsqlInterface) ColorRankingForPlayerOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) ColorRankingForPlayerOnServer(userID, guildID string) []*Int16ModeCount
func (psqlInterface *PsqlInterface) ColorRankingForPlayer(userID string) []*Int16ModeCount {
r := []*Int16ModeCount{}
err := pgxscan.Select(context.Background(), psqlInterface.Pool, &r, "SELECT count(*),mode() within GROUP (ORDER BY player_color) AS mode FROM users_games WHERE user_id=$1 GROUP BY player_color ORDER BY count desc;", userID)
if err != nil {
log.Println(err)
}
return r
}
func (*PsqlInterface) DeleteAllGamesForServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) DeleteAllGamesForServer(guildID string) error
func (*PsqlInterface) DeleteAllGamesForUser ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) DeleteAllGamesForUser(userID string) error
func (*PsqlInterface) EnsureGuildExists ¶
func (psqlInterface *PsqlInterface) EnsureGuildExists(guildID uint64, guildName string) (*PostgresGuild, error)
func (*PsqlInterface) EnsureUserExists ¶
func (psqlInterface *PsqlInterface) EnsureUserExists(userID uint64) (*PostgresUser, error)
func (*PsqlInterface) GetGame ¶
func (psqlInterface *PsqlInterface) GetGame(guildID, connectCode, matchID string) (*PostgresGame, error)
func (*PsqlInterface) GetGameEvents ¶
func (psqlInterface *PsqlInterface) GetGameEvents(matchID string) ([]*PostgresGameEvent, error)
func (*PsqlInterface) GetGuild ¶
func (psqlInterface *PsqlInterface) GetGuild(guildID uint64) (*PostgresGuild, error)
func (*PsqlInterface) GetGuildPremiumStatus ¶
func (psqlInterface *PsqlInterface) GetGuildPremiumStatus(guildID string) (premium.Tier, int)
func (*PsqlInterface) GetUser ¶
func (psqlInterface *PsqlInterface) GetUser(userID uint64) (*PostgresUser, error)
func (*PsqlInterface) GetUserByString ¶
func (psqlInterface *PsqlInterface) GetUserByString(userID string) (*PostgresUser, error)
func (*PsqlInterface) Init ¶
func (psqlInterface *PsqlInterface) Init(addr string) error
func (*PsqlInterface) LoadAndExecFromFile ¶
func (psqlInterface *PsqlInterface) LoadAndExecFromFile(filepath string) error
func (*PsqlInterface) NamesRankingForPlayerOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NamesRankingForPlayerOnServer(userID, guildID string) []*StringModeCount
func (*PsqlInterface) NumGamesAsRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesAsRole(userID string, role int16) int64
func (*PsqlInterface) NumGamesAsRoleOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesAsRoleOnServer(userID, guildID string, role int16) int64
func (*PsqlInterface) NumGamesPlayedByUser ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesPlayedByUser(userID string) int64
func (*PsqlInterface) NumGamesPlayedByUserOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesPlayedByUserOnServer(userID, guildID string) int64
func (*PsqlInterface) NumGamesPlayedOnGuild ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesPlayedOnGuild(guildID string) int64
func (*PsqlInterface) NumGamesWonAsRoleOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGamesWonAsRoleOnServer(guildID string, role game.GameRole) int64
func (*PsqlInterface) NumGuildsPlayedInByUser ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumGuildsPlayedInByUser(userID string) int64
func (*PsqlInterface) NumWins ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumWins(userID string) int64
func (*PsqlInterface) NumWinsAsRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumWinsAsRole(userID string, role int16) int64
func (*PsqlInterface) NumWinsAsRoleOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumWinsAsRoleOnServer(userID, guildID string, role int16) int64
func (*PsqlInterface) NumWinsOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) NumWinsOnServer(userID, guildID string) int64
func (*PsqlInterface) OptUserByString ¶
func (psqlInterface *PsqlInterface) OptUserByString(userID string, opt bool) (bool, error)
func (*PsqlInterface) OtherPlayersRankingForPlayerOnServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) OtherPlayersRankingForPlayerOnServer(userID, guildID string) []*PostgresOtherPlayerRanking
func (*PsqlInterface) TotalGamesRankingForServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) TotalGamesRankingForServer(guildID uint64) []*Uint64ModeCount
func (*PsqlInterface) TotalWinRankingForServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) TotalWinRankingForServer(guildID uint64) []*PostgresPlayerRanking
func (*PsqlInterface) TotalWinRankingForServerByRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) TotalWinRankingForServerByRole(guildID uint64, role int16) []*PostgresPlayerRanking
func (*PsqlInterface) UpdateGameAndPlayers ¶
func (psqlInterface *PsqlInterface) UpdateGameAndPlayers(gameID int64, winType int16, endTime int64, players []*PostgresUserGame) error
make sure to call the relevant "ensure" methods before this one...
func (*PsqlInterface) UserFrequentFirstTarget ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) UserFrequentFirstTarget(userID, guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
func (*PsqlInterface) UserMostFrequentFirstTargetForServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) UserMostFrequentFirstTargetForServer(guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
func (*PsqlInterface) UserMostFrequentKilledBy ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) UserMostFrequentKilledBy(userID, guildID string) []*PostgresUserMostFrequentKilledByanking
func (*PsqlInterface) UserMostFrequentKilledByServer ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) UserMostFrequentKilledByServer(guildID string) []*PostgresUserMostFrequentKilledByanking
func (*PsqlInterface) UserWinByActionAndRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) UserWinByActionAndRole(userdID, guildID string, action string, role int16) []*PostgresUserActionRanking
func (*PsqlInterface) WorstTeammateByRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) WorstTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
func (*PsqlInterface) WorstTeammateForServerByRole ¶ added in v0.0.24
func (psqlInterface *PsqlInterface) WorstTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
type PsqlParameters ¶
type SimpleEvent ¶ added in v0.0.24
type SimpleEvent struct {
EventType SimpleEventType
EventTimeOffset time.Duration
Data string
}
type SimpleEventType ¶ added in v0.0.24
type SimpleEventType int
const ( Tasks SimpleEventType = iota Discuss PlayerDeath PlayerDisconnect )
type StringModeCount ¶ added in v0.0.24
type Uint64ModeCount ¶ added in v0.0.24
Click to show internal directories.
Click to hide internal directories.