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