Versions in this module Expand all Collapse all v3 v3.0.0 Dec 3, 2023 Changes in this version + const GitHub + const Module + const Name + var EndpointBase Endpoint = "/v4" + var EndpointDecodeTrack = EndpointBase + "/decodetrack?track=%s" + var EndpointDecodeTracks = EndpointBase + "/decodetracks" + var EndpointDestroyPlayer = EndpointBase + "/sessions/%s/players/%s" + var EndpointInfo = EndpointBase + "/info" + var EndpointLoadTracks = EndpointBase + "/loadtracks?identifier=%s" + var EndpointPlayer = EndpointBase + "/sessions/%s/players/%s" + var EndpointPlayers = EndpointBase + "/sessions/%s/players" + var EndpointStats = EndpointBase + "/stats" + var EndpointUpdatePlayer = EndpointBase + "/sessions/%s/players/%s?noReplace=%t" + var EndpointUpdateSession = EndpointBase + "/sessions/%s" + var EndpointVersion Endpoint = "/version" + var EndpointWebSocket = EndpointBase + "/websocket" + var ErrNodeAlreadyConnected = errors.New("node already connected") + var ErrPlayerNoNode = errors.New("player has no node") + var Version = getVersion() + type AudioLoadResultHandler interface + LoadFailed func(err error) + NoMatches func() + PlaylistLoaded func(playlist lavalink.Playlist) + SearchResultLoaded func(tracks []lavalink.Track) + TrackLoaded func(track lavalink.Track) + func NewResultHandler(trackLoaded func(track lavalink.Track), ...) AudioLoadResultHandler + type Client interface + AddListeners func(listeners ...EventListener) + AddNode func(ctx context.Context, config NodeConfig) (Node, error) + AddPlugins func(plugins ...Plugin) + BestNode func() Node + Close func() + EmitEvent func(player Player, event lavalink.Message) + ExistingPlayer func(guildID snowflake.ID) Player + ForNodes func(nodeFunc func(node Node)) + ForPlayers func(playerFunc func(player Player)) + ForPlugins func(pluginFunc func(plugin Plugin)) + Node func(name string) Node + OnVoiceServerUpdate func(ctx context.Context, guildID snowflake.ID, token string, endpoint string) + OnVoiceStateUpdate func(ctx context.Context, guildID snowflake.ID, channelID *snowflake.ID, ...) + Player func(guildID snowflake.ID) Player + PlayerOnNode func(node Node, guildID snowflake.ID) Player + RemoveListeners func(listeners ...EventListener) + RemoveNode func(name string) + RemovePlayer func(guildID snowflake.ID) + RemovePlugins func(plugins ...Plugin) + UserID func() snowflake.ID + func New(userID snowflake.ID, opts ...ConfigOpt) Client + type Config struct + HTTPClient *http.Client + Listeners []EventListener + Logger *slog.Logger + Plugins []Plugin + func DefaultConfig() *Config + func (c *Config) Apply(opts []ConfigOpt) + type ConfigOpt func(config *Config) + func WithHTTPClient(httpClient *http.Client) ConfigOpt + func WithListenerFunc[E lavalink.Message](listenerFunc func(p Player, e E)) ConfigOpt + func WithListeners(listeners ...EventListener) ConfigOpt + func WithLogger(logger *slog.Logger) ConfigOpt + func WithPlugins(plugins ...Plugin) ConfigOpt + type Endpoint string + func (e Endpoint) Format(a ...any) string + type EventListener interface + OnEvent func(player Player, event lavalink.Message) + func NewListenerFunc[E lavalink.Message](f func(p Player, e E)) EventListener + type EventPlugin interface + Event func() lavalink.EventType + OnEventInvocation func(player Player, data []byte) + type EventPlugins interface + EventPlugins func() []EventPlugin + type FunctionalResultHandler struct + func (h FunctionalResultHandler) LoadFailed(err error) + func (h FunctionalResultHandler) NoMatches() + func (h FunctionalResultHandler) PlaylistLoaded(playlist lavalink.Playlist) + func (h FunctionalResultHandler) SearchResultLoaded(tracks []lavalink.Track) + func (h FunctionalResultHandler) TrackLoaded(track lavalink.Track) + type Node interface + Close func() + Config func() NodeConfig + DecodeTrack func(ctx context.Context, encodedTrack string) (*lavalink.Track, error) + DecodeTracks func(ctx context.Context, encodedTracks []string) ([]lavalink.Track, error) + Info func(ctx context.Context) (*lavalink.Info, error) + Lavalink func() Client + LoadTracks func(ctx context.Context, identifier string) (*lavalink.LoadResult, error) + LoadTracksHandler func(ctx context.Context, identifier string, handler AudioLoadResultHandler) + Open func(ctx context.Context) error + Rest func() RestClient + SessionID func() string + Stats func() lavalink.Stats + Status func() Status + Update func(ctx context.Context, update lavalink.SessionUpdate) error + Version func(ctx context.Context) (string, error) + type NodeConfig struct + Address string + Name string + Password string + Secure bool + SessionID string + func (c NodeConfig) RestURL() string + func (c NodeConfig) WsURL() string + type OpPlugin interface + OnOpInvocation func(node Node, data []byte) + Op func() lavalink.Op + type Player interface + ChannelID func() *snowflake.ID + Destroy func(ctx context.Context) error + Filters func() lavalink.Filters + GuildID func() snowflake.ID + Lavalink func() Client + Node func() Node + OnEvent func(event lavalink.Event) + OnPlayerUpdate func(state lavalink.PlayerState) + OnVoiceServerUpdate func(ctx context.Context, token string, endpoint string) + OnVoiceStateUpdate func(ctx context.Context, channelID *snowflake.ID, sessionID string) + Paused func() bool + Position func() lavalink.Duration + Restore func(player lavalink.Player) + State func() lavalink.PlayerState + Track func() *lavalink.Track + Update func(ctx context.Context, opts ...lavalink.PlayerUpdateOpt) error + Volume func() int + func NewPlayer(lavalink Client, node Node, guildID snowflake.ID) Player + type Plugin interface + Name func() string + Version func() string + type PluginEventHandler interface + OnDestroyPlayer func(player Player) + OnNewPlayer func(player Player) + OnNodeClose func(node Node) + OnNodeMessageIn func(node Node, data []byte) + OnNodeOpen func(node Node) + type RestClient interface + DecodeTrack func(ctx context.Context, encodedTrack string) (*lavalink.Track, error) + DecodeTracks func(ctx context.Context, encodedTracks []string) ([]lavalink.Track, error) + DestroyPlayer func(ctx context.Context, sessionID string, guildID snowflake.ID) error + Do func(rq *http.Request) (*http.Response, error) + Info func(ctx context.Context) (*lavalink.Info, error) + LoadTracks func(ctx context.Context, identifier string) (*lavalink.LoadResult, error) + Player func(ctx context.Context, sessionID string, guildID snowflake.ID) (*lavalink.Player, error) + Players func(ctx context.Context, sessionID string) ([]lavalink.Player, error) + Stats func(ctx context.Context) (*lavalink.Stats, error) + UpdatePlayer func(ctx context.Context, sessionID string, guildID snowflake.ID, ...) (*lavalink.Player, error) + UpdateSession func(ctx context.Context, sessionID string, sessionUpdate lavalink.SessionUpdate) (*lavalink.Session, error) + Version func(ctx context.Context) (string, error) + type Status string + const StatusConnected + const StatusConnecting + const StatusDisconnected + const StatusReconnecting Other modules containing this package github.com/disgoorg/disgolink/disgolink github.com/disgoorg/disgolink/v2