Documentation ¶
Index ¶
- Constants
- Variables
- func CanTransfer(origin, dest *PostgresGuild) error
- 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) AddGoldSubServer(origin, dest string) 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) 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) 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) TransferPremium(origin, dest string) error
- 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 CanTransfer ¶
func CanTransfer(origin, dest *PostgresGuild) error
CanTransfer determines the set of possible transfers for server premium it does NOT allow for chained transfers! Aka if A -> B, then B cannot transfer to C (nor back to A)
func ConstructPsqlConnectURL ¶
Types ¶
type GameStatistics ¶
type GameStatistics struct { GameDuration time.Duration WinType game.GameResult NumMeetings int NumDeaths int NumVotedOff int NumDisconnects int Events []SimpleEvent }
func StatsFromGameAndEvents ¶
func StatsFromGameAndEvents(pgame *PostgresGame, events []*PostgresGameEvent) GameStatistics
func (*GameStatistics) FormatDurationAndWin ¶
func (stats *GameStatistics) FormatDurationAndWin() string
TODO localize
func (*GameStatistics) ToDiscordEmbed ¶
func (stats *GameStatistics) ToDiscordEmbed(combinedID string, sett *settings.GuildSettings) *discordgo.MessageEmbed
func (*GameStatistics) ToString ¶
func (stats *GameStatistics) ToString() string
type Int16ModeCount ¶
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) AddGoldSubServer ¶
func (psqlInterface *PsqlInterface) AddGoldSubServer(origin, dest string) error
func (*PsqlInterface) AddInitialGame ¶
func (psqlInterface *PsqlInterface) AddInitialGame(game *PostgresGame) (uint64, error)
func (*PsqlInterface) BestTeammateByRole ¶
func (psqlInterface *PsqlInterface) BestTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
func (*PsqlInterface) BestTeammateForServerByRole ¶
func (psqlInterface *PsqlInterface) BestTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresBestTeammatePlayerRanking
func (*PsqlInterface) Close ¶
func (psqlInterface *PsqlInterface) Close()
func (*PsqlInterface) ColorRankingForPlayerOnServer ¶
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 ¶
func (psqlInterface *PsqlInterface) DeleteAllGamesForServer(guildID string) error
func (*PsqlInterface) DeleteAllGamesForUser ¶
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) 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 ¶
func (psqlInterface *PsqlInterface) NamesRankingForPlayerOnServer(userID, guildID string) []*StringModeCount
func (*PsqlInterface) NumGamesAsRole ¶
func (psqlInterface *PsqlInterface) NumGamesAsRole(userID string, role int16) int64
func (*PsqlInterface) NumGamesAsRoleOnServer ¶
func (psqlInterface *PsqlInterface) NumGamesAsRoleOnServer(userID, guildID string, role int16) int64
func (*PsqlInterface) NumGamesPlayedByUser ¶
func (psqlInterface *PsqlInterface) NumGamesPlayedByUser(userID string) int64
func (*PsqlInterface) NumGamesPlayedByUserOnServer ¶
func (psqlInterface *PsqlInterface) NumGamesPlayedByUserOnServer(userID, guildID string) int64
func (*PsqlInterface) NumGamesPlayedOnGuild ¶
func (psqlInterface *PsqlInterface) NumGamesPlayedOnGuild(guildID string) int64
func (*PsqlInterface) NumGamesWonAsRoleOnServer ¶
func (psqlInterface *PsqlInterface) NumGamesWonAsRoleOnServer(guildID string, role game.GameRole) int64
func (*PsqlInterface) NumGuildsPlayedInByUser ¶
func (psqlInterface *PsqlInterface) NumGuildsPlayedInByUser(userID string) int64
func (*PsqlInterface) NumWins ¶
func (psqlInterface *PsqlInterface) NumWins(userID string) int64
func (*PsqlInterface) NumWinsAsRole ¶
func (psqlInterface *PsqlInterface) NumWinsAsRole(userID string, role int16) int64
func (*PsqlInterface) NumWinsAsRoleOnServer ¶
func (psqlInterface *PsqlInterface) NumWinsAsRoleOnServer(userID, guildID string, role int16) int64
func (*PsqlInterface) NumWinsOnServer ¶
func (psqlInterface *PsqlInterface) NumWinsOnServer(userID, guildID string) int64
func (*PsqlInterface) OptUserByString ¶
func (psqlInterface *PsqlInterface) OptUserByString(userID string, opt bool) error
func (*PsqlInterface) OtherPlayersRankingForPlayerOnServer ¶
func (psqlInterface *PsqlInterface) OtherPlayersRankingForPlayerOnServer(userID, guildID string) []*PostgresOtherPlayerRanking
func (*PsqlInterface) TotalGamesRankingForServer ¶
func (psqlInterface *PsqlInterface) TotalGamesRankingForServer(guildID uint64) []*Uint64ModeCount
func (*PsqlInterface) TotalWinRankingForServer ¶
func (psqlInterface *PsqlInterface) TotalWinRankingForServer(guildID uint64) []*PostgresPlayerRanking
func (*PsqlInterface) TotalWinRankingForServerByRole ¶
func (psqlInterface *PsqlInterface) TotalWinRankingForServerByRole(guildID uint64, role int16) []*PostgresPlayerRanking
func (*PsqlInterface) TransferPremium ¶
func (psqlInterface *PsqlInterface) TransferPremium(origin, dest string) error
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 ¶
func (psqlInterface *PsqlInterface) UserFrequentFirstTarget(userID, guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
func (*PsqlInterface) UserMostFrequentFirstTargetForServer ¶
func (psqlInterface *PsqlInterface) UserMostFrequentFirstTargetForServer(guildID string, action string, leaderboardSize int) []*PostgresUserMostFrequentFirstTargetRanking
func (*PsqlInterface) UserMostFrequentKilledBy ¶
func (psqlInterface *PsqlInterface) UserMostFrequentKilledBy(userID, guildID string) []*PostgresUserMostFrequentKilledByanking
func (*PsqlInterface) UserMostFrequentKilledByServer ¶
func (psqlInterface *PsqlInterface) UserMostFrequentKilledByServer(guildID string) []*PostgresUserMostFrequentKilledByanking
func (*PsqlInterface) UserWinByActionAndRole ¶
func (psqlInterface *PsqlInterface) UserWinByActionAndRole(userdID, guildID string, action string, role int16) []*PostgresUserActionRanking
func (*PsqlInterface) WorstTeammateByRole ¶
func (psqlInterface *PsqlInterface) WorstTeammateByRole(userID, guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
func (*PsqlInterface) WorstTeammateForServerByRole ¶
func (psqlInterface *PsqlInterface) WorstTeammateForServerByRole(guildID string, role int16, leaderboardMin int) []*PostgresWorstTeammatePlayerRanking
type PsqlParameters ¶
type SimpleEvent ¶
type SimpleEvent struct { EventType SimpleEventType EventTimeOffset time.Duration Data string }
type SimpleEventType ¶
type SimpleEventType int
const ( Tasks SimpleEventType = iota Discuss PlayerDeath PlayerDisconnect )
type StringModeCount ¶
type Uint64ModeCount ¶
Click to show internal directories.
Click to hide internal directories.