EDA.Gateway.Intents (EDA v0.3.0)

Copy Markdown View Source

Discord Gateway Intents.

Intents are used to control which events your bot receives from the Gateway. Some intents are "privileged" and require enabling in the Discord Developer Portal.

Privileged Intents

  • :guild_members - Required to receive member-related events
  • :guild_presences - Required to receive presence updates
  • :message_content - Required to receive message content in guild messages

Example

config :eda,
  intents: [:guilds, :guild_messages, :message_content]

Or use shortcuts:

config :eda, intents: :all              # All intents
config :eda, intents: :nonprivileged    # All non-privileged intents

When :intents is not configured at all, EDA falls back to [:guilds] (see EDA.intents/0) — not :nonprivileged.

Summary

Functions

Returns all available intent names.

Checks if a specific intent is enabled in a bitfield.

Returns non-privileged intent names.

Returns privileged intent names.

Converts a list of intent atoms to a bitfield integer.

Functions

all_intents()

@spec all_intents() :: [atom()]

Returns all available intent names.

has_intent?(bitfield, intent)

@spec has_intent?(integer(), atom()) :: boolean()

Checks if a specific intent is enabled in a bitfield.

nonprivileged_intents()

@spec nonprivileged_intents() :: [atom()]

Returns non-privileged intent names.

privileged_intents()

@spec privileged_intents() :: [atom()]

Returns privileged intent names.

to_bitfield(intents)

@spec to_bitfield(atom() | [atom()]) :: integer()

Converts a list of intent atoms to a bitfield integer.

Examples

iex> EDA.Gateway.Intents.to_bitfield([:guilds, :guild_messages])
513

iex> EDA.Gateway.Intents.to_bitfield(:all)
# Returns all intents combined

iex> EDA.Gateway.Intents.to_bitfield(:nonprivileged)
# Returns all non-privileged intents