Enum GatewayIntent
- All Implemented Interfaces:
Serializable
,Comparable<GatewayIntent>
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.
- 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)
- GUILD_MODERATION - This will only track guild moderation events, such as bans, unbans, and audit-logs.
- 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.
- 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.
- 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.
- 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.
- GUILD_PRESENCES - This is a privileged gateway intent this is only used to track activity and online-status of a user.
- GUILD_MESSAGES - This is used to receive incoming messages in guilds (servers), most bots will need this for commands.
- 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.
- 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.
- DIRECT_MESSAGES - This is used to receive incoming messages in private channels (DMs). You can still send private messages without this intent.
- DIRECT_MESSAGE_REACTIONS - This is used to track reactions on messages in private channels (DMs).
- 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.
- 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).
- SCHEDULED_EVENTS - This is used to keep track of scheduled events in guilds.
- AUTO_MODERATION_CONFIGURATION - This is used to keep track of auto-mod rule changes in guilds.
- AUTO_MODERATION_EXECUTION - This is used to receive events related to auto-mod response actions.
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 Summary
Enum ConstantDescriptionEvents related toAutoModRule
changes.Events related toAutoModResponse
triggers.Events for poll votes inPrivateChannels
.Message reaction events in private channels.Typing events in private channels.Message events in private channels.Deprecated.Custom emoji, sticker and soundboard sound add/update/delete events.Invite events.PRIVILEGED INTENT Events which inform us about member update/leave/join of a guild.Events for poll votes inGuilds
.Message reaction events in guilds.Typing start events in guilds.Message events from text channels in guilds.Moderation events, such as ban/unban/audit-log.PRIVILEGED INTENT Presence updates.Voice state events.Webhook events.PRIVILEGED INTENT Access to message content.Scheduled Events events. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Bitmask with all intents enabled.static final int
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 tocreateLight(token)
orcreateDefault(token)
. -
Method Summary
Modifier and TypeMethodDescriptionstatic EnumSet
<GatewayIntent> from
(Collection<Class<? extends GenericEvent>> events, Collection<CacheFlag> flags) Parse the required GatewayIntents from the providedEvent Types
andCacheFlags
.static EnumSet
<GatewayIntent> fromCacheFlags
(Collection<CacheFlag> flags) Parse the required GatewayIntents from the providedCacheFlags
.static EnumSet
<GatewayIntent> fromCacheFlags
(CacheFlag flag, CacheFlag... other) Parse the required GatewayIntents from the providedCacheFlags
.static EnumSet
<GatewayIntent> fromEvents
(Class<? extends GenericEvent>... events) Parse the required GatewayIntents from the providedEvent Types
.static EnumSet
<GatewayIntent> fromEvents
(Collection<Class<? extends GenericEvent>> events) Parse the required GatewayIntents from the providedEvent Types
.static EnumSet
<GatewayIntent> getIntents
(int raw) Converts a bitmask into anEnumSet
of enum values.int
The offset of the intent flag within a bitmask
This meansgetRawValue() == 1 << getOffset()
static int
getRaw
(Collection<GatewayIntent> set) Converts the given intents to a bitmaskstatic int
getRaw
(GatewayIntent intent, GatewayIntent... set) Converts the given intents to a bitmaskint
The raw bitmask value for this intentstatic GatewayIntent
Returns the enum constant of this type with the specified name.static GatewayIntent[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
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 useChunkingFilter.NONE
!This will also update user information such as name/avatar.
-
GUILD_MODERATION
Moderation events, such as ban/unban/audit-log. -
GUILD_EMOJIS_AND_STICKERS
@ForRemoval(deadline="5.3.0") @ReplaceWith("GUILD_EXPRESSIONS") @Deprecated public static final GatewayIntent GUILD_EMOJIS_AND_STICKERSDeprecated.Replaced withGUILD_EXPRESSIONS
Custom emoji and sticker add/update/delete events. -
GUILD_EXPRESSIONS
Custom emoji, sticker and soundboard sound add/update/delete events. -
GUILD_WEBHOOKS
Webhook events. -
GUILD_INVITES
Invite events. -
GUILD_VOICE_STATES
Voice state events. This is used to determine which members are connected to a voice channel. -
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 usingGUILD_MEMBERS
instead.This intent is primarily used to track
Member.getOnlineStatus()
andMember.getActivities()
. -
GUILD_MESSAGES
Message events from text channels in guilds. -
GUILD_MESSAGE_REACTIONS
Message reaction events in guilds. -
GUILD_MESSAGE_TYPING
Typing start events in guilds. -
DIRECT_MESSAGES
Message events in private channels. -
DIRECT_MESSAGE_REACTIONS
Message reaction events in private channels. -
DIRECT_MESSAGE_TYPING
Typing events in private channels. -
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 aPrivateChannel
. Affected are all user-generated content fields of a message, such as:- See Also:
-
SCHEDULED_EVENTS
Scheduled Events events. -
AUTO_MODERATION_CONFIGURATION
Events related toAutoModRule
changes. -
AUTO_MODERATION_EXECUTION
Events related toAutoModResponse
triggers. -
GUILD_MESSAGE_POLLS
Events for poll votes inGuilds
. -
DIRECT_MESSAGE_POLLS
Events for poll votes inPrivateChannels
.
-
-
Field Details
-
ALL_INTENTS
public static final int ALL_INTENTSBitmask 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 useEnumSet.noneOf(GatewayIntent.class)
to achieve the opposite. -
DEFAULT
public static final int DEFAULTAll 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
createLight(token)
orcreateDefault(token)
. You can further configure intents by usingenableIntents(intents)
anddisableIntents(intents)
.
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
getRawValue
public int getRawValue()The raw bitmask value for this intent- Returns:
- The raw bitmask value
-
getOffset
public int getOffset()The offset of the intent flag within a bitmask
This meansgetRawValue() == 1 << getOffset()
- Returns:
- The offset
-
getIntents
Converts a bitmask into anEnumSet
of enum values.- Parameters:
raw
- The raw bitmask- Returns:
EnumSet
of intents
-
getRaw
Converts the given intents to a bitmask- Parameters:
set
- TheCollection
of intents- Returns:
- The bitmask for this set of intents
- Throws:
IllegalArgumentException
- If null is provided
-
getRaw
Converts the given intents to a bitmask- Parameters:
intent
- The first intentset
- The remaining intents- Returns:
- The bitmask for this set of intents
- Throws:
IllegalArgumentException
- If null is provided
-
fromCacheFlags
@Nonnull public static EnumSet<GatewayIntent> fromCacheFlags(@Nonnull CacheFlag flag, @Nonnull CacheFlag... other) Parse the required GatewayIntents from the providedCacheFlags
.
This creates anEnumSet
based onCacheFlag.getRequiredIntent()
.- Parameters:
flag
- The first cache flagother
- Any additional cache flags- Returns:
EnumSet
for the required intents- Throws:
IllegalArgumentException
- If provided with null
-
fromCacheFlags
Parse the required GatewayIntents from the providedCacheFlags
.
This creates anEnumSet
based onCacheFlag.getRequiredIntent()
.- Parameters:
flags
- The cache flags- Returns:
EnumSet
for the required intents- Throws:
IllegalArgumentException
- If provided with null
-
fromEvents
@Nonnull @SafeVarargs public static EnumSet<GatewayIntent> fromEvents(@Nonnull Class<? extends GenericEvent>... events) Parse the required GatewayIntents from the providedEvent Types
.- Parameters:
events
- The event types- Returns:
EnumSet
for the required intents- Throws:
IllegalArgumentException
- If provided with null
-
fromEvents
@Nonnull public static EnumSet<GatewayIntent> fromEvents(@Nonnull Collection<Class<? extends GenericEvent>> events) Parse the required GatewayIntents from the providedEvent Types
.- Parameters:
events
- The event types- Returns:
EnumSet
for the required intents- Throws:
IllegalArgumentException
- If provided with null
-
from
@Nonnull public static EnumSet<GatewayIntent> from(@Nonnull Collection<Class<? extends GenericEvent>> events, @Nonnull Collection<CacheFlag> flags) Parse the required GatewayIntents from the providedEvent Types
andCacheFlags
.- Parameters:
events
- The event typesflags
- The cache flags- Returns:
EnumSet
for the required intents- Throws:
IllegalArgumentException
- If provided with null
-
GUILD_EXPRESSIONS