Intent class final
Gateway intents for controlling which events your bot receives from Discord.
Intents are used to specify which events your bot wants to receive from Discord's gateway. This allows you to reduce bandwidth usage and improve performance by only subscribing to the events you need.
Usage
Single Intent
final client = ClientBuilder()
..setIntent(Intent.guilds)
..build();
Multiple Intents (Bitwise OR)
final client = ClientBuilder()
..setIntent(
Intent.guilds |
Intent.guildMessages |
Intent.guildMembers,
)
..build();
All Intents
final client = ClientBuilder()
..setIntent(Intent.all)
..build();
All Non-Privileged Intents
final client = ClientBuilder()
..setIntent(Intent.allNonPrivileged)
..build();
Privileged Intents
Some intents require special approval from Discord:
- guildMembers: Access to member-related events
- guildPresences: Access to presence updates
- messageContent: Access to message content in messages
To use privileged intents:
- Go to the Discord Developer Portal
- Select your application
- Go to the "Bot" section
- Enable the required privileged intents
Intent Categories
Guild (Server) Events
- guilds: Guild create/update/delete, channel create/update/delete, role create/update/delete
- guildMembers: Member join/update/remove (privileged)
- guildModeration: Ban/unban events
- guildEmojisAndStickers: Emoji and sticker updates
- guildIntegrations: Integration updates
- guildWebhooks: Webhook updates
- guildInvites: Invite create/delete
- guildVoiceStates: Voice state updates
- guildPresences: Presence updates (privileged)
Message Events
- guildMessages: Guild message events
- guildMessageReactions: Guild message reaction events
- guildMessageTyping: Guild typing start events
- directMessages: DM message events
- directMessageReactions: DM reaction events
- directMessageTyping: DM typing start events
- messageContent: Message content access (privileged)
Scheduled Events
- guildScheduledEvents: Scheduled event create/update/delete/user add/remove
Auto Moderation
- autoModerationConfiguration: Auto moderation rule create/update/delete
- autoModerationExecution: Auto moderation rule execution
Polls
- guildMessagePolls: Guild message poll vote add/remove
- directMessagePolls: DM message poll vote add/remove
Best Practices
- Request only what you need: Each intent increases memory usage and bandwidth
- Enable privileged intents carefully: They require approval and expose sensitive data
- Use specific intents: Avoid using all unless necessary
- Consider allNonPrivileged: Good default for bots that don't need privileged data
- Test with minimal intents: Start with minimal intents and add as needed
Examples
Moderation Bot
final client = ClientBuilder()
..setIntent(
Intent.guilds |
Intent.guildMembers | // Privileged
Intent.guildModeration |
Intent.guildMessages |
Intent.messageContent, // Privileged
)
..build();
Music Bot
final client = ClientBuilder()
..setIntent(
Intent.guilds |
Intent.guildVoiceStates |
Intent.guildMessages,
)
..build();
Utility Bot (Commands Only)
final client = ClientBuilder()
..setIntent(Intent.guilds) // Minimal for slash commands
..build();
Social Bot
final client = ClientBuilder()
..setIntent(
Intent.guilds |
Intent.guildMessages |
Intent.guildMessageReactions |
Intent.guildPresences | // Privileged
Intent.messageContent, // Privileged
)
..build();
See also:
- ClientBuilder.setIntent for setting intents
- Discord's Gateway Intents documentation
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- all → const int
- Combines all available intents (privileged and non-privileged).
- allNonPrivileged → const int
- Combines all non-privileged intents.
- autoModerationConfiguration → const int
- Subscribes to auto moderation rule configuration events.
- autoModerationExecution → const int
- Subscribes to auto moderation execution events.
- directMessagePolls → const int
- Subscribes to direct message poll vote events.
- directMessageReactions → const int
- Subscribes to direct message reaction events.
- directMessages → const int
- Subscribes to direct message events.
- directMessageTyping → const int
- Subscribes to direct message typing events.
- guildEmojisAndStickers → const int
- Subscribes to emoji and sticker events.
- guildIntegrations → const int
- Subscribes to integration events.
- guildInvites → const int
- Subscribes to invite events.
- guildMembers → const int
- Subscribes to guild member events (privileged).
- guildMessagePolls → const int
- Subscribes to guild message poll vote events.
- guildMessageReactions → const int
- Subscribes to guild message reaction events.
- guildMessages → const int
- Subscribes to guild message events.
- guildMessageTyping → const int
- Subscribes to guild typing events.
- guildModeration → const int
- Subscribes to guild ban and unban events.
- guildPresences → const int
- Subscribes to presence update events (privileged).
- guilds → const int
- Subscribes to guild and channel events.
- guildScheduledEvents → const int
- Subscribes to scheduled event notifications.
- guildVoiceStates → const int
- Subscribes to voice state events.
- guildWebhooks → const int
- Subscribes to webhook events.
- messageContent → const int
- Enables access to message content (privileged).