v0.5.0

Discord API

Last updated

Every exported symbol of github.com/pardnchiu/go-bot/core/discord, built on github.com/bwmarrin/discordgo v0.29.0.

Types

Symbol Definition Notes
Bot struct (unexported fields) Create with New; methods are safe for concurrent use
Status struct { Running bool; Username string; UserID string } Returned by Status()
Input struct Fields: ChannelID, ChannelName, GuildID, MessageID, UserID, Username, Text (all string), Attachments []*discordgo.MessageAttachment, CallbackPicks []string, Raw *discordgo.MessageCreate. See Discord Setup
ReplyHandler func(ctx context.Context, input Input) string
ChannelStatus struct (unexported fields) Per-channel status entry managed by SendStatus; not constructed by callers
StatusOption func(*statusOptions) Options for SendStatus

Constructor and options

Function Effect
New(token string) (*Bot, error) Error when token is empty or discordgo rejects it
WithStatusEmoji(emoji string) StatusOption Reaction emoji; default 🤔

Methods

Method Returns Errors and limits
Start(ctx context.Context) error User("@me") or Session.Open failure
Close() error Session.Close failure
Status() Status
Reply(handler ReplyHandler) — Replaces the previous handler
Send(ctx, channelID, replyTo, text string) (*discordgo.Message, error) Empty channel ID, API error
Delete(ctx, channelID, messageID string) error Empty IDs, API error
SendFiles(ctx, channelID, replyTo string, paths []string, caption ...string) (*discordgo.Message, error) Empty channel ID, 0 or more than 10 paths, empty path, os.Open failure
SendVoice(ctx, channelID, replyTo, path string, caption ...string) (*discordgo.Message, error) Empty channel ID or path, os.Open failure
SendInput(ctx, channelID, replyTo, prompt string) (*discordgo.Message, error) Empty channel ID or prompt, UUID failure
SendSelect(ctx, channelID, replyTo, text string, items []string) (*discordgo.Message, error) Empty channel ID or text, 0 or more than 25 non-empty items, UUID failure
SendMultiSelect(ctx, channelID, replyTo, text string, items []string) (*discordgo.Message, error) Same as SendSelect
SendStatus(ctx, channelID, replyTo, text string, opts ...StatusOption) error Send/edit error when flushed immediately
FinishStatus(ctx, channelID string) error Delete error, or ctx.Err() while waiting for an in-flight edit
Save(ctx, att *discordgo.MessageAttachment, dir string) (string, error) Nil attachment, empty URL or dir, file over 25 MiB, HTTP non-200, file system errors

Discord Setup · Discord Messages · Discord Interactions · Status Messages · Saving Media

中文