Permission
extends Part
in package
Permission represents a set of permissions for a given role or overwrite.
Note: The const declared here are the bit position, not the bitwise value.
Tags
Table of Contents
Constants
- ALL_PERMISSIONS = ['create_instant_invite' => 0, 'manage_channels' => 4, 'add_reactions' => 6, 'view_channel' => 10, 'send_messages' => 11, 'send_tts_messages' => 12, 'manage_messages' => 13, 'embed_links' => 14, 'attach_files' => 15, 'read_message_history' => 16, 'mention_everyone' => 17, 'use_external_emojis' => 18, 'manage_roles' => 28, 'manage_webhooks' => 29, 'use_application_commands' => 31, 'use_external_stickers' => 37, 'send_voice_messages' => 46]
- Array of permissions for all roles.
- ROLE_PERMISSIONS = ['kick_members' => 1, 'ban_members' => 2, 'administrator' => 3, 'manage_guild' => 5, 'view_audit_log' => 7, 'view_guild_insights' => 19, 'change_nickname' => 26, 'manage_nicknames' => 27, 'manage_guild_expressions' => 30, 'moderate_members' => 40, 'view_creator_monetization_analytics' => 41]
- Array of permissions that can only be applied to roles.
- STAGE_PERMISSIONS = ['stream' => 9, 'connect' => 20, 'mute_members' => 22, 'move_members' => 24, 'request_to_speak' => 32, 'manage_events' => 33, 'create_events' => 44]
- Array of permissions that only apply to stage channels.
- TEXT_PERMISSIONS = ['manage_threads' => 34, 'create_public_threads' => 35, 'create_private_threads' => 36, 'send_messages_in_threads' => 38]
- Array of permissions that only apply to text channels.
- VOICE_PERMISSIONS = ['priority_speaker' => 8, 'stream' => 9, 'connect' => 20, 'speak' => 21, 'mute_members' => 22, 'deafen_members' => 23, 'move_members' => 24, 'use_vad' => 25, 'manage_events' => 33, 'use_embedded_activities' => 39, 'use_soundboard' => 42, 'create_events' => 44, 'use_external_sounds' => 45, 'send_voice_messages' => 46, 'send_polls' => 49]
- Array of permissions that only apply to voice channels.
Properties
- $add_reactions : bool
- $attach_files : bool
- $bitwise : int|string
- $create_instant_invite : bool
- $created : bool
- Is the part already created in the Discord servers?
- $embed_links : bool
- $manage_channels : bool
- $manage_messages : bool
- $manage_roles : bool
- $manage_webhooks : bool
- $mention_everyone : bool
- $read_message_history : bool
- $scriptData : mixed
- Custom script data.
- $send_messages : bool
- $send_tts_messages : bool
- $send_voice_messages : bool
- $use_application_commands : bool
- $use_external_emojis : bool
- $use_external_stickers : bool
- $view_channel : bool
- $attributes : array<string|int, mixed>
- The parts attributes.
- $discord : Discord
- The Discord client.
- $factory : Factory
- The factory.
- $fillable : array<string|int, mixed>
- The parts fillable attributes.
- $hidden : array<string|int, mixed>
- Attributes that are hidden from debug info.
- $http : Http
- The HTTP client.
- $repositories : array<string|int, mixed>
- An array of repositories that can exist in a part.
- $repositories_cache : array<string|int, mixed>
- An array of repositories.
- $visible : array<string|int, mixed>
- Attributes which are visible from debug info.
- $permissions : array<string|int, mixed>
- Array of permissions.
Methods
- __construct() : mixed
- __debugInfo() : array<string|int, mixed>
- Handles debug calls from var_dump and similar functions.
- __get() : mixed
- Handles dynamic get calls onto the part.
- __serialize() : array<string|int, mixed>
- __set() : void
- Handles dynamic set calls onto the part.
- __toString() : string
- __unserialize() : void
- fetch() : PromiseInterface<string|int, static>
- Fetches any missing information about the part from Discord's servers.
- fill() : void
- Fills the parts attributes from an array.
- getCreatableAttributes() : array<string|int, mixed>
- Returns the attributes needed to create.
- getDiscord() : Discord
- Get the Discord instance that owns this Part.
- getPermissions() : array<string|int, mixed>
- Returns an array of extra permissions.
- getPublicAttributes() : array<string|int, mixed>
- Returns an array of public attributes.
- getRawAttributes() : array<string|int, mixed>
- Returns an array of raw attributes.
- getRepositoryAttributes() : array<string|int, mixed>
- Gets the attributes to pass to repositories.
- getUpdatableAttributes() : array<string|int, mixed>
- Returns the updatable attributes.
- isPartial() : bool
- Whether the part is considered partial i.e. missing information which can be fetched from Discord.
- jsonSerialize() : array<string|int, mixed>
- Provides data when the part is encoded into JSON. Used for JsonSerializable.
- offsetExists() : bool
- Checks if an attribute exists via key. Used for ArrayAccess.
- offsetGet() : mixed
- Gets an attribute via key. Used for ArrayAccess.
- offsetSet() : void
- Sets an attribute via key. Used for ArrayAccess.
- offsetUnset() : void
- Unsets an attribute via key. Used for ArrayAccess.
- serialize() : string|null
- Serializes the data. Used for Serializable.
- unserialize() : void
- Unserializes some data and stores it. Used for Serializable.
- afterConstruct() : void
- Called after the part has been constructed.
- getBitwiseAttribute() : int|string
- Gets the bitwise attribute of the permission.
- getManageEmojisAndStickersAttribute() : mixed
- makeOptionalAttributes() : array<string|int, mixed>
- Return key-value attributes if it has been filled.
- setBitwiseAttribute() : void
- Sets the bitwise attribute of the permission.
- setManageEmojisAndStickersAttribute() : void
- checkForGetMutator() : string|false
- Checks if there is a get mutator present.
- checkForSetMutator() : string|false
- Checks if there is a set mutator present.
- getAttribute() : mixed
- Gets an attribute on the part.
- setAttribute() : void
- Sets an attribute on the part.
- studly() : string
- Converts a string to studlyCase.
Constants
ALL_PERMISSIONS
Array of permissions for all roles.
public
array<string|int, mixed>
ALL_PERMISSIONS
= ['create_instant_invite' => 0, 'manage_channels' => 4, 'add_reactions' => 6, 'view_channel' => 10, 'send_messages' => 11, 'send_tts_messages' => 12, 'manage_messages' => 13, 'embed_links' => 14, 'attach_files' => 15, 'read_message_history' => 16, 'mention_everyone' => 17, 'use_external_emojis' => 18, 'manage_roles' => 28, 'manage_webhooks' => 29, 'use_application_commands' => 31, 'use_external_stickers' => 37, 'send_voice_messages' => 46]
i.e. indicated T,V,S in documentation.
ROLE_PERMISSIONS
Array of permissions that can only be applied to roles.
public
array<string|int, mixed>
ROLE_PERMISSIONS
= ['kick_members' => 1, 'ban_members' => 2, 'administrator' => 3, 'manage_guild' => 5, 'view_audit_log' => 7, 'view_guild_insights' => 19, 'change_nickname' => 26, 'manage_nicknames' => 27, 'manage_guild_expressions' => 30, 'moderate_members' => 40, 'view_creator_monetization_analytics' => 41]
i.e. indicated empty in documentation.
Tags
STAGE_PERMISSIONS
Array of permissions that only apply to stage channels.
public
array<string|int, mixed>
STAGE_PERMISSIONS
= ['stream' => 9, 'connect' => 20, 'mute_members' => 22, 'move_members' => 24, 'request_to_speak' => 32, 'manage_events' => 33, 'create_events' => 44]
i.e. indicated S in documentation.
Tags
TEXT_PERMISSIONS
Array of permissions that only apply to text channels.
public
array<string|int, mixed>
TEXT_PERMISSIONS
= ['manage_threads' => 34, 'create_public_threads' => 35, 'create_private_threads' => 36, 'send_messages_in_threads' => 38]
i.e. indicated T in documentation.
The constant values here are the bit position, not the bitwise value
Tags
VOICE_PERMISSIONS
Array of permissions that only apply to voice channels.
public
array<string|int, mixed>
VOICE_PERMISSIONS
= ['priority_speaker' => 8, 'stream' => 9, 'connect' => 20, 'speak' => 21, 'mute_members' => 22, 'deafen_members' => 23, 'move_members' => 24, 'use_vad' => 25, 'manage_events' => 33, 'use_embedded_activities' => 39, 'use_soundboard' => 42, 'create_events' => 44, 'use_external_sounds' => 45, 'send_voice_messages' => 46, 'send_polls' => 49]
i.e. indicated V in documentation.
Tags
Properties
$add_reactions
public
bool
$add_reactions
Allows for the addition of reactions to messages
$attach_files
public
bool
$attach_files
Allows for uploading images and files
$bitwise
public
int|string
$bitwise
Bitwise value of the enabled/disabled permissions
$create_instant_invite
public
bool
$create_instant_invite
Allows creation of instant invites
$created
Is the part already created in the Discord servers?
public
bool
$created
= false
Whether the part has been created.
$embed_links
public
bool
$embed_links
Links sent by users with this permission will be auto-embedded
$manage_channels
public
bool
$manage_channels
Allows management and editing of channels
$manage_messages
public
bool
$manage_messages
Allows for deletion of other users messages
$manage_roles
public
bool
$manage_roles
Allows management and editing of roles
$manage_webhooks
public
bool
$manage_webhooks
Allows management and editing of webhooks
$mention_everyone
public
bool
$mention_everyone
Allows for using the @everyone
tag to notify all users in a channel, and the @here
tag to notify all online users in a channel
$read_message_history
public
bool
$read_message_history
Allows for reading of message history
$scriptData
Custom script data.
Relying on this variable with dynamic caching is discouraged.
public
mixed
$scriptData
Used for storing custom information, used by end products.
$send_messages
public
bool
$send_messages
Allows for sending messages in a channel and creating threads in a forum (does not allow sending messages in threads)
$send_tts_messages
public
bool
$send_tts_messages
Allows for sending of /tts
messages
$send_voice_messages
public
bool
$send_voice_messages
Allows sending voice messages
$use_application_commands
public
bool
$use_application_commands
Allows members to use application commands, including slash commands and context menu commands.
$use_external_emojis
public
bool
$use_external_emojis
Allows the usage of custom emojis from other servers
$use_external_stickers
public
bool
$use_external_stickers
Allows the usage of custom stickers from other servers
$view_channel
public
bool
$view_channel
Allows guild members to view a channel, which includes reading messages in text channels and joining voice channels
$attributes
The parts attributes.
protected
array<string|int, mixed>
$attributes
= []
The parts attributes and content.
$discord
The Discord client.
protected
Discord
$discord
Client.
$factory
The factory.
protected
Factory
$factory
Factory.
$fillable
The parts fillable attributes.
protected
array<string|int, mixed>
$fillable
= []
The array of attributes that can be mass-assigned.
$hidden
Attributes that are hidden from debug info.
protected
array<string|int, mixed>
$hidden
= []
Attributes that are hidden from public.
$http
The HTTP client.
protected
Http
$http
Client.
$repositories
An array of repositories that can exist in a part.
protected
array<string|int, mixed>
$repositories
= []
Repositories.
$repositories_cache
An array of repositories.
protected
array<string|int, mixed>
$repositories_cache
= []
$visible
Attributes which are visible from debug info.
protected
array<string|int, mixed>
$visible
= []
$permissions
Array of permissions.
private
array<string|int, mixed>
$permissions
= []
Methods
__construct()
public
__construct(Discord $discord[, array<string|int, mixed> $attributes = [] ][, bool $created = false ]) : mixed
Parameters
- $discord : Discord
- $attributes : array<string|int, mixed> = []
- $created : bool = false
__debugInfo()
Handles debug calls from var_dump and similar functions.
public
__debugInfo() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
__get()
Handles dynamic get calls onto the part.
public
__get(string $key) : mixed
Parameters
- $key : string
-
The attributes key.
Tags
Return values
mixed —The value of the attribute.
__serialize()
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed>__set()
Handles dynamic set calls onto the part.
public
__set(string $key, mixed $value) : void
Parameters
- $key : string
-
The attributes key.
- $value : mixed
-
The attributes value.
Tags
__toString()
public
__toString() : string
Return values
string__unserialize()
public
__unserialize(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
fetch()
Fetches any missing information about the part from Discord's servers.
public
fetch() : PromiseInterface<string|int, static>
Tags
Return values
PromiseInterface<string|int, static>fill()
Fills the parts attributes from an array.
public
fill(array<string|int, mixed> $attributes) : void
Parameters
- $attributes : array<string|int, mixed>
-
An array of attributes to build the part.
Tags
getCreatableAttributes()
Returns the attributes needed to create.
public
getCreatableAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>getDiscord()
Get the Discord instance that owns this Part.
public
getDiscord() : Discord
Return values
DiscordgetPermissions()
Returns an array of extra permissions.
public
abstract static getPermissions() : array<string|int, mixed>
Return values
array<string|int, mixed>getPublicAttributes()
Returns an array of public attributes.
public
getPublicAttributes() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
getRawAttributes()
Returns an array of raw attributes.
public
getRawAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed> —Raw attributes.
getRepositoryAttributes()
Gets the attributes to pass to repositories.
public
getRepositoryAttributes() : array<string|int, mixed>
Note: The order matters for repository tree (top to bottom).
Return values
array<string|int, mixed> —Attributes.
getUpdatableAttributes()
Returns the updatable attributes.
public
getUpdatableAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>isPartial()
Whether the part is considered partial i.e. missing information which can be fetched from Discord.
public
isPartial() : bool
Return values
booljsonSerialize()
Provides data when the part is encoded into JSON. Used for JsonSerializable.
public
jsonSerialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
offsetExists()
Checks if an attribute exists via key. Used for ArrayAccess.
public
offsetExists(string $key) : bool
Parameters
- $key : string
-
The attribute key.
Return values
bool —Whether the offset exists.
offsetGet()
Gets an attribute via key. Used for ArrayAccess.
public
offsetGet(string $key) : mixed
Parameters
- $key : string
-
The attribute key.
Tags
Attributes
- #[ReturnTypeWillChange]
offsetSet()
Sets an attribute via key. Used for ArrayAccess.
public
offsetSet(string $key, mixed $value) : void
Parameters
- $key : string
-
The attribute key.
- $value : mixed
-
The attribute value.
Tags
offsetUnset()
Unsets an attribute via key. Used for ArrayAccess.
public
offsetUnset(string $key) : void
Parameters
- $key : string
-
The attribute key.
serialize()
Serializes the data. Used for Serializable.
public
serialize() : string|null
Return values
string|null —A string of serialized data.
unserialize()
Unserializes some data and stores it. Used for Serializable.
public
unserialize(string $data) : void
Parameters
- $data : string
-
Some serialized data.
Tags
afterConstruct()
Called after the part has been constructed.
protected
afterConstruct() : void
getBitwiseAttribute()
Gets the bitwise attribute of the permission.
protected
getBitwiseAttribute() : int|string
Tags
Return values
int|stringgetManageEmojisAndStickersAttribute()
protected
getManageEmojisAndStickersAttribute() : mixed
Use manage_guild_expressions
makeOptionalAttributes()
Return key-value attributes if it has been filled.
protected
makeOptionalAttributes(array<string|int, mixed> $attributes) : array<string|int, mixed>
To be used with fields marked "optional?" from the API.
Parameters
- $attributes : array<string|int, mixed>
-
Names of optional attribute
Return values
array<string|int, mixed>setBitwiseAttribute()
Sets the bitwise attribute of the permission.
protected
setBitwiseAttribute(int|string $bitwise) : void
Parameters
- $bitwise : int|string
Tags
setManageEmojisAndStickersAttribute()
protected
setManageEmojisAndStickersAttribute(bool $value) : void
Use manage_guild_expressions
Parameters
- $value : bool
checkForGetMutator()
Checks if there is a get mutator present.
private
checkForGetMutator(string $key) : string|false
Parameters
- $key : string
-
The attribute name to check.
Tags
Return values
string|false —Either a string if it is a method or false.
checkForSetMutator()
Checks if there is a set mutator present.
private
checkForSetMutator(string $key) : string|false
Parameters
- $key : string
-
The attribute name to check.
Tags
Return values
string|false —Either a string if it is a method or false.
getAttribute()
Gets an attribute on the part.
private
getAttribute(string $key) : mixed
Parameters
- $key : string
-
The key to the attribute.
Tags
Return values
mixed —Either the attribute if it exists or void.
setAttribute()
Sets an attribute on the part.
private
setAttribute(string $key, mixed $value) : void
Parameters
- $key : string
-
The key to the attribute.
- $value : mixed
-
The value of the attribute.
studly()
Converts a string to studlyCase.
private
static studly(string $string) : string
This is a port of updated Laravel's implementation, a non-regex with static cache. The Discord\studly() is kept due to unintended bug and we do not want to introduce BC by replacing it. This method is private static as we may move it outside this class in future.
Parameters
- $string : string
-
The string to convert.