Enum GatewayIntent

All Implemented Interfaces:
Serializable, Comparable<GatewayIntent>

public enum GatewayIntent extends Enum<GatewayIntent>
Flags which enable or disable specific events from the discord gateway.

The way to use these is very simple. Go through each intent in the following list and decide whether your bot will need these events or not.

  1. GUILD_MEMBERS - This is a privileged gateway intent that is used to update user information and join/leaves (including kicks). This is required to cache all members of a guild (including chunking)
  2. GUILD_MODERATION - This will only track guild moderation events, such as bans, unbans, and audit-logs.
  3. GUILD_EMOJIS - This will only track custom emoji create/modify/delete. Most bots don't need this since they just use the emoji id anyway.
  4. GUILD_WEBHOOKS - This will only track guild webhook create/update/delete. Most bots don't need this since related events don't contain any useful information about webhook changes.
  5. GUILD_INVITES - This will only track invite create/delete. Most bots don't make use of invites since they are added through OAuth2 authorization by administrators.
  6. GUILD_VOICE_STATES - Required to properly get information of members in voice channels and cache them. You cannot connect to a voice channel without this intent.
  7. GUILD_PRESENCES - This is a privileged gateway intent this is only used to track activity and online-status of a user.
  8. GUILD_MESSAGES - This is used to receive incoming messages in guilds (servers), most bots will need this for commands.
  9. GUILD_MESSAGE_REACTIONS - This is used to track reactions on messages in guilds (servers). Can be useful to make a paginated embed or reaction role management.
  10. GUILD_MESSAGE_TYPING - This is used to track when a user starts typing in guilds (servers). Almost no bot will have a use for this.
  11. DIRECT_MESSAGES - This is used to receive incoming messages in private channels (DMs). You can still send private messages without this intent.
  12. DIRECT_MESSAGE_REACTIONS - This is used to track reactions on messages in private channels (DMs).
  13. DIRECT_MESSAGE_TYPING - This is used to track when a user starts typing in private channels (DMs). Almost no bot will have a use for this.
  14. MESSAGE_CONTENT - This is a privileged gateway intent this is only used to enable access to the user content in messages (also including embeds/attachments/components).
  15. SCHEDULED_EVENTS - This is used to keep track of scheduled events in guilds.
  16. AUTO_MODERATION_CONFIGURATION - This is used to keep track of auto-mod rule changes in guilds.
  17. AUTO_MODERATION_EXECUTION - This is used to receive events related to auto-mod response actions.
If an intent is not specifically mentioned to be privileged, it is not required to be on the whitelist to use it (and its related events). To get whitelisted you either need to contact discord support (for bots in more than 100 guilds) or enable it in the developer dashboard of your application.

You must use ChunkingFilter.NONE if GUILD_MEMBERS is disabled. To enable chunking the discord api requires the privileged GUILD_MEMBERS intent.

See Also:
  • Enum Constant Details


      public static final GatewayIntent GUILD_MEMBERS
      PRIVILEGED INTENT Events which inform us about member update/leave/join of a guild.
      This is required to chunk all members of a guild. Without this enabled you have to use ChunkingFilter.NONE!

      This will also update user information such as name/avatar.


      public static final GatewayIntent GUILD_MODERATION
      Moderation events, such as ban/unban/audit-log.

      public static final GatewayIntent GUILD_EMOJIS_AND_STICKERS
      Custom emoji and sticker add/update/delete events.

      public static final GatewayIntent GUILD_WEBHOOKS
      Webhook events.

      public static final GatewayIntent GUILD_INVITES
      Invite events.

      public static final GatewayIntent GUILD_VOICE_STATES
      Voice state events. This is used to determine which members are connected to a voice channel.

      public static final GatewayIntent GUILD_PRESENCES
      PRIVILEGED INTENT Presence updates. This is used to lazy load members and update user properties such as name/avatar.
      This is a very heavy intent! Presence updates are 99% of traffic the bot will receive. To get user update events you should consider using GUILD_MEMBERS instead.

      This intent is primarily used to track Member.getOnlineStatus() and Member.getActivities().


      public static final GatewayIntent GUILD_MESSAGES
      Message events from text channels in guilds.

      public static final GatewayIntent GUILD_MESSAGE_REACTIONS
      Message reaction events in guilds.

      public static final GatewayIntent GUILD_MESSAGE_TYPING
      Typing start events in guilds.

      public static final GatewayIntent DIRECT_MESSAGES
      Message events in private channels.

      public static final GatewayIntent DIRECT_MESSAGE_REACTIONS
      Message reaction events in private channels.

      public static final GatewayIntent DIRECT_MESSAGE_TYPING
      Typing events in private channels.

      public static final GatewayIntent MESSAGE_CONTENT
      PRIVILEGED INTENT Access to message content.

      This specifically affects messages received through the message history of a channel, or through Message Events. The content restriction does not apply if the message mentions the bot directly (using @username), sent by the bot itself, or if the message is a direct message from a PrivateChannel. Affected are all user-generated content fields of a message, such as:

      See Also:

      public static final GatewayIntent SCHEDULED_EVENTS
      Scheduled Events events.

      public static final GatewayIntent AUTO_MODERATION_CONFIGURATION
      Events related to AutoModRule changes.

      public static final GatewayIntent AUTO_MODERATION_EXECUTION
      Events related to AutoModResponse triggers.

      public static final GatewayIntent GUILD_MESSAGE_POLLS
      Events for poll votes in Guilds.

      public static final GatewayIntent DIRECT_MESSAGE_POLLS
      Events for poll votes in PrivateChannels.
  • Field Details


      public static final int ALL_INTENTS
      Bitmask with all intents enabled.

      To use all intents in your own code you should use EnumSet.allOf(GatewayIntent.class) instead. This value only represents the raw bitmask used in JDA.
      You can use EnumSet.noneOf(GatewayIntent.class) to achieve the opposite.


      public static final int DEFAULT
      All intents with some disabled:
      • GUILD_MEMBERS (because its privileged)
      • GUILD_PRESENCES (because its privileged)
      • MESSAGE_CONTENT (because its privileged)
      • GUILD_WEBHOOKS because its not useful for most bots
      • GUILD_MESSAGE_TYPING because its not useful for most bots
      • DIRECT_MESSAGE_TYPING because its not useful for most bots
      To use these intents you have to pass no other intents to createLight(token) or createDefault(token). You can further configure intents by using enableIntents(intents) and disableIntents(intents).
  • Method Details