Help us shape the future of Go! Take the 2026 Go Developer Survey

dbot

package
v0.5.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

Types

type AudioTrackData

type AudioTrackData struct {
	Requester snowflake.ID `json:"requester"`
}

type Bot

type Bot struct {
	Logger              log.Logger
	Client              bot.Client
	Handler             *handler.Handler
	Lavalink            disgolink.Link
	MusicPlayers        *MusicPlayerMap
	Paginator           *paginator.Manager
	DB                  db.DB
	ReportLogWebhookMap *ReportLogWebhookMap
	Config              Config
	Version             string
}

func New

func New(logger log.Logger, config Config, version string) *Bot

func (*Bot) RegisterNodes

func (b *Bot) RegisterNodes()

func (*Bot) SetupBot

func (b *Bot) SetupBot(listeners ...bot.EventListener) (err error)
func (b *Bot) SetupLavalink()

func (*Bot) StartBot

func (b *Bot) StartBot() error

type BotConfig

type BotConfig struct {
	ShardIDs   []int `json:"shard_ids"`
	ShardCount int   `json:"shard_count"`
}

type Config

type Config struct {
	config.Config
	Bot                  BotConfig      `json:"dbot"`
	PlayHistoryCacheSize int            `json:"play_history_cache_size"`
	Lavalink             LavalinkConfig `json:"lavalink"`
	MetricsAddress       string         `json:"metrics_address"`
}

type LavalinkConfig

type LavalinkConfig struct {
	Nodes           []lavalink.NodeConfig `json:"nodes"`
	ResumingTimeout int                   `json:"resuming_timeout"`
}

type LoopingType

type LoopingType int
const (
	LoopingTypeOff LoopingType = iota
	LoopingTypeRepeatTrack
	LoopingTypeRepeatQueue
)

func (LoopingType) String

func (t LoopingType) String() string

type MusicHistory

type MusicHistory struct {
	// contains filtered or unexported fields
}

func NewHistory

func NewHistory() *MusicHistory

func (*MusicHistory) Last

func (h *MusicHistory) Last() lavalink.AudioTrack

func (*MusicHistory) Len

func (h *MusicHistory) Len() int

func (*MusicHistory) Push

func (h *MusicHistory) Push(tracks ...lavalink.AudioTrack)

func (*MusicHistory) Tracks

func (h *MusicHistory) Tracks() []lavalink.AudioTrack

type MusicPlayer

type MusicPlayer struct {
	lavalink.Player
	Bot               *Bot
	Type              PlayerType
	Queue             *MusicQueue
	History           *MusicHistory
	SkipVotes         map[snowflake.ID]struct{}
	DisconnectContext context.Context
	DisconnectCancel  context.CancelFunc
}

func (*MusicPlayer) CancelDisconnect

func (p *MusicPlayer) CancelDisconnect()

func (*MusicPlayer) OnPlayerPause

func (p *MusicPlayer) OnPlayerPause(player lavalink.Player)

func (*MusicPlayer) OnPlayerResume

func (p *MusicPlayer) OnPlayerResume(player lavalink.Player)

func (*MusicPlayer) OnPlayerUpdate

func (p *MusicPlayer) OnPlayerUpdate(player lavalink.Player, state lavalink.PlayerState)

func (*MusicPlayer) OnTrackEnd

func (p *MusicPlayer) OnTrackEnd(player lavalink.Player, track lavalink.AudioTrack, endReason lavalink.AudioTrackEndReason)

func (*MusicPlayer) OnTrackException

func (p *MusicPlayer) OnTrackException(player lavalink.Player, track lavalink.AudioTrack, exception lavalink.FriendlyException)

func (*MusicPlayer) OnTrackStart

func (p *MusicPlayer) OnTrackStart(player lavalink.Player, track lavalink.AudioTrack)

func (*MusicPlayer) OnTrackStuck

func (p *MusicPlayer) OnTrackStuck(player lavalink.Player, track lavalink.AudioTrack, thresholdMs lavalink.Duration)

func (*MusicPlayer) OnWebSocketClosed

func (p *MusicPlayer) OnWebSocketClosed(player lavalink.Player, code int, reason string, byRemote bool)

func (*MusicPlayer) PlanDisconnect

func (p *MusicPlayer) PlanDisconnect()

type MusicPlayerMap

type MusicPlayerMap struct {
	// contains filtered or unexported fields
}

func NewMusicPlayerMap

func NewMusicPlayerMap(bot *Bot) *MusicPlayerMap

func (*MusicPlayerMap) Add

func (b *MusicPlayerMap) Add(player *MusicPlayer)

func (*MusicPlayerMap) All

func (b *MusicPlayerMap) All() []*MusicPlayer

func (*MusicPlayerMap) Delete

func (b *MusicPlayerMap) Delete(guildID snowflake.ID)

func (*MusicPlayerMap) Get

func (b *MusicPlayerMap) Get(guildID snowflake.ID) *MusicPlayer

func (*MusicPlayerMap) Has

func (b *MusicPlayerMap) Has(guildID snowflake.ID) bool

func (*MusicPlayerMap) Len

func (b *MusicPlayerMap) Len() int

func (*MusicPlayerMap) New

func (b *MusicPlayerMap) New(guildID snowflake.ID, playerType PlayerType, loopingType LoopingType) *MusicPlayer

type MusicQueue

type MusicQueue struct {
	// contains filtered or unexported fields
}

func NewMusicQueue

func NewMusicQueue(queueType LoopingType) *MusicQueue

func (*MusicQueue) Clear

func (q *MusicQueue) Clear()

func (*MusicQueue) Get

func (q *MusicQueue) Get(index int) lavalink.AudioTrack

func (*MusicQueue) Len

func (q *MusicQueue) Len() int

func (*MusicQueue) LoopingType

func (q *MusicQueue) LoopingType() LoopingType

func (*MusicQueue) Pop

func (q *MusicQueue) Pop() lavalink.AudioTrack

func (*MusicQueue) Push

func (q *MusicQueue) Push(tracks ...lavalink.AudioTrack)

func (*MusicQueue) Remove

func (q *MusicQueue) Remove(index ...int)

func (*MusicQueue) SetType

func (q *MusicQueue) SetType(loopingType LoopingType)

func (*MusicQueue) Shuffle

func (q *MusicQueue) Shuffle()

func (*MusicQueue) Tracks

func (q *MusicQueue) Tracks() []lavalink.AudioTrack

type PlayerType

type PlayerType int
const (
	PlayerTypeMusic PlayerType = iota
	PlayerTypeRadio
)

type ReportLogWebhookMap

type ReportLogWebhookMap struct {
	// contains filtered or unexported fields
}

func NewReportLogWebhookMap

func NewReportLogWebhookMap() *ReportLogWebhookMap

func (*ReportLogWebhookMap) Delete

func (m *ReportLogWebhookMap) Delete(webhookID snowflake.ID)

func (*ReportLogWebhookMap) Get

func (m *ReportLogWebhookMap) Get(webhookID snowflake.ID, webhookToken string) webhook.Client

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL