View Source Nostrum.Permission (Nostrum v0.6.0)
Functions that work on permissions.
Some functions return a list of permissions. You can use enumerable functions to work with permissions:
alias Nostrum.Cache.GuildCache
alias Nostrum.Struct.Guild.Member
guild = GuildCache.get!(279093381723062272)
member = Map.get(guild.members, 177888205536886784)
member_perms = Member.guild_permissions(member, guild)
if :administrator in member_perms do
IO.puts("This user has the administrator permission.")
end
Link to this section Summary
Functions
Returns a list of all permissions.
Converts the given bit to a permission.
Same as from_bit/1
, but raises ArgumentError
in case of failure.
Converts the given bitset to a list of permissions.
Returns true
if term
is a permission; otherwise returns false
.
Converts the given permission to a bit.
Converts the given enumerable of permissions to a bitset.
Link to this section Types
Specs
bit() :: non_neg_integer()
Represents a single permission as a bitvalue.
Specs
bitset() :: non_neg_integer()
Represents a set of permissions as a bitvalue.
Specs
general_permission() :: :create_instant_invite | :kick_members | :ban_members | :administrator | :manage_channels | :manage_guild | :view_audit_log | :view_channel | :change_nickname | :manage_nicknames | :manage_roles | :manage_webhooks | :manage_emojis_and_stickers | :view_guild_insights | :use_application_commands | :moderate_members
Specs
t() :: general_permission() | text_permission() | voice_permission()
Specs
text_permission() :: :add_reactions | :send_messages | :send_tts_messages | :manage_messages | :embed_links | :attach_files | :read_message_history | :mention_everyone | :use_external_emojis | :create_public_threads | :create_private_threads | :send_messages_in_threads | :manage_threads | :use_external_stickers
Specs
voice_permission() :: :connect | :speak | :mute_members | :deafen_members | :move_members | :use_vad | :priority_speaker | :stream | :request_to_speak | :manage_events | :use_embedded_activities
Link to this section Functions
Specs
all() :: [t()]
Returns a list of all permissions.
Specs
Converts the given bit to a permission.
This function returns :error
if bit
does not map to a permission.
Examples
iex> Nostrum.Permission.from_bit(0x04000000)
{:ok, :change_nickname}
iex> Nostrum.Permission.from_bit(0)
:error
Specs
Same as from_bit/1
, but raises ArgumentError
in case of failure.
Examples
iex> Nostrum.Permission.from_bit!(0x04000000)
:change_nickname
iex> Nostrum.Permission.from_bit!(0)
** (ArgumentError) expected a valid bit, got: `0`
Specs
Converts the given bitset to a list of permissions.
If invalid bits are given they will be omitted from the results.
Examples
iex> Nostrum.Permission.from_bitset(0x08000002)
[:manage_nicknames, :kick_members]
iex> Nostrum.Permission.from_bitset(0x4000000000000)
[]
Returns true
if term
is a permission; otherwise returns false
.
Examples
iex> Nostrum.Permission.is_permission(:administrator)
true
iex> Nostrum.Permission.is_permission(:not_a_permission)
false
Specs
Converts the given permission to a bit.
Examples
iex> Nostrum.Permission.to_bit(:administrator)
8
Specs
Converts the given enumerable of permissions to a bitset.
Examples
iex> Nostrum.Permission.to_bitset([:administrator, :create_instant_invite])
9