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 |
Related pages
Discord Setup · Discord Messages · Discord Interactions · Status Messages · Saving Media