v0.5.0

Discord Setup

Last updated

This page covers constructing the core/discord bot, the gateway intents it requests, and the Input your handler receives.

Constructor

bot, err := discord.New(token)

New returns token is required for an empty token. It creates a discordgo.Session authenticated as Bot <token>, registers the message and interaction handlers, and does not connect. There are no options.

Gateway intents

Intent Why it is requested
IntentGuilds Makes the gateway send GUILD_CREATE, which fills discordgo's state cache; without it Input.ChannelName is always ""
IntentsGuildMessages Messages in server channels
IntentDirectMessages Direct messages to the bot
IntentMessageContent Message text and attachments

IntentMessageContent is privileged. Enable Message Content Intent under Bot settings in the Discord Developer Portal; otherwise Input.Text is empty for most messages (Discord only sends content for DMs and messages that mention the bot).

Start

Start(ctx) first calls REST User("@me") to validate the token, then Session.Open() to connect the WebSocket. A bad token fails at the first step, before any connection is opened. Messages sent by the bot itself are filtered using discordgo's session state, so they never reach the handler.

Input

Field Type Content
ChannelID string Channel of the message or prompt
ChannelName string Read from the state cache with no extra request; "" for DMs or a cache miss
GuildID string Server ID; "" for DMs
MessageID string The user's message; for modal and select answers, the prompt message
UserID / Username string Sender; for interactions, taken from the guild member or, in DMs, the user
Text string Message content, the modal answer, or the single-select pick
Attachments []*discordgo.MessageAttachment Every uploaded file (images, files, audio); tell them apart with ContentType
CallbackPicks []string Values chosen in a SendMultiSelect menu
Raw *discordgo.MessageCreate The SDK event for plain messages; nil for interaction answers

All IDs are Discord snowflake strings.

中文