Nostrum v0.4.0 Nostrum.Permission View Source
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
bit()
View Source
bit() :: non_neg_integer()
bit() :: non_neg_integer()
Represents a single permission as a bitvalue.
bitset()
View Source
bitset() :: non_neg_integer()
bitset() :: non_neg_integer()
Represents a set of permissions as a bitvalue.
general_permission()
View Source
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
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
t()
View Source
t() :: general_permission() | text_permission() | voice_permission()
t() :: general_permission() | text_permission() | voice_permission()
text_permission()
View Source
text_permission() ::
:add_reactions
| :send_messages
| :send_tts_messages
| :manage_messages
| :embed_links
| :attach_files
| :read_message_history
| :mention_everyone
| :use_external_emojis
text_permission() :: :add_reactions | :send_messages | :send_tts_messages | :manage_messages | :embed_links | :attach_files | :read_message_history | :mention_everyone | :use_external_emojis
voice_permission()
View Source
voice_permission() ::
:connect
| :speak
| :mute_members
| :deafen_members
| :move_members
| :use_vad
| :priority_speaker
voice_permission() :: :connect | :speak | :mute_members | :deafen_members | :move_members | :use_vad | :priority_speaker
Link to this section Functions
all()
View Source
all() :: [t()]
all() :: [t()]
Returns a list of all permissions.
from_bit(bit) View Source
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
from_bit!(bit) View Source
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`
from_bitset(bitset) View Source
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)
[]
is_permission(term) View Source (macro)
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
to_bit(permission) View Source
Converts the given permission to a bit.
Examples
iex> Nostrum.Permission.to_bit(:administrator)
8
to_bitset(permissions) View Source
Converts the given enumerable of permissions to a bitset.
Examples
iex> Nostrum.Permission.to_bitset([:administrator, :create_instant_invite])
9