Documentation
¶
Index ¶
- Variables
- type Lavalink
- type LavalinkCluster
- type Redis
- func (r *Redis) AnnounceDeath(node string) error
- func (r *Redis) ClaimPlayer(node string, guildID uint64) (bool, error)
- func (r *Redis) ConsumeDeaths(node string, deaths chan string) error
- func (r *Redis) CreateNode(name string) error
- func (r *Redis) DeleteNode(name string) error
- func (r *Redis) GetPlayer(guildID uint64, state *types.PlayerState) (err error)
- func (r *Redis) GetStats(node string, stats *types.Stats) (err error)
- func (r *Redis) GetVoiceUpdate(guildID uint64) (session string, server types.VoiceServerUpdate, err error)
- func (r *Redis) PlayerNode(guildID uint64) (string, error)
- func (r *Redis) ReleasePlayer(node string, guildID uint64) (bool, error)
- func (r *Redis) SetPlayer(upd types.PlayerUpdate) error
- func (r *Redis) SetStats(node string, stats types.Stats) error
- func (r *Redis) SetVoiceServer(pk types.VoiceServerUpdate) error
- func (r *Redis) SetVoiceSession(guildID uint64, sessionID string) error
Constants ¶
This section is empty.
Variables ¶
var ( // ClaimPlayer claims the player in redis ClaimPlayer = redis.NewScript(_escFSMustString(false, "/redis_scripts/claimplayer.lua")) // PlayerNode gets the player of the node PlayerNode = redis.NewScript(_escFSMustString(false, "/redis_scripts/playernode.lua")) )
var ErrUnknownRedisResponse = errors.New("unknown redis response")
ErrUnknownRedisResponse occurs when the library is expecting a redis response and receives one of incorrect type
Functions ¶
This section is empty.
Types ¶
type Lavalink ¶
type Lavalink interface { GetPlayer(guildID uint64, state *types.PlayerState) error SetPlayer(upd types.PlayerUpdate) error GetVoiceUpdate(guildID uint64) (sessionID string, event types.VoiceServerUpdate, err error) SetVoiceSession(guildID uint64, sessionID string) error SetVoiceServer(pk types.VoiceServerUpdate) error GetStats(node string, stats *types.Stats) error SetStats(node string, stats types.Stats) error }
Lavalink represents the required interface for a complete Lavalink Store
type LavalinkCluster ¶
type LavalinkCluster interface { Lavalink // claim a player for a specified node ClaimPlayer(node string, guildID uint64) (bool, error) // get the node of a player PlayerNode(guildID uint64) (string, error) // release a player from any claims on it ReleasePlayer(node string, guildID uint64) (bool, error) // announce the destruction of a node and the subsequent availability of all its players AnnounceDeath(node string) error // consume death notifications for a node should pull players from the node's set of // players until there are no remaining players ConsumeDeaths(node string) error }
LavalinkCluster is the interface a backend storage system must implement to be used as a cluster Store
type Redis ¶
type Redis struct {
// contains filtered or unexported fields
}
Redis represents a clustering client. Used 1:1 with Lavalink nodes.
func (*Redis) AnnounceDeath ¶
AnnounceDeath destroys a node
func (*Redis) ClaimPlayer ¶
ClaimPlayer claims a player for the node
func (*Redis) ConsumeDeaths ¶
ConsumeDeaths consumes death notifications, ignoring the specified node
func (*Redis) GetPlayer ¶
func (r *Redis) GetPlayer(guildID uint64, state *types.PlayerState) (err error)
GetPlayer gets the cached player state for the given guild
func (*Redis) GetVoiceUpdate ¶
func (r *Redis) GetVoiceUpdate(guildID uint64) (session string, server types.VoiceServerUpdate, err error)
GetVoiceUpdate gets voice update info.
func (*Redis) PlayerNode ¶
PlayerNode gets the node that the player is running on
func (*Redis) ReleasePlayer ¶
ReleasePlayer releases a player from a node
func (*Redis) SetPlayer ¶
func (r *Redis) SetPlayer(upd types.PlayerUpdate) error
SetPlayer sets player info
func (*Redis) SetStats ¶
SetStats sets the stats for a node. It also updates a set of node names sorted by system CPU load.
func (*Redis) SetVoiceServer ¶
func (r *Redis) SetVoiceServer(pk types.VoiceServerUpdate) error
SetVoiceServer sets the voice server information in Redis