79 lines
3.6 KiB
ReStructuredText
79 lines
3.6 KiB
ReStructuredText
|stub| Permissions
|
|
==================
|
|
|
|
|outdated|
|
|
|
|
There are two types of permissions: *Channel Permissions* and *Server Permissions*.
|
|
|
|
Channel Permissions
|
|
-------------------
|
|
Channel Permissions are controlled using a set of flags:
|
|
|
|
======================= ======= ==============
|
|
Flag Type Description
|
|
======================= ======= ==============
|
|
AttachFiles Text Send files to a channel.
|
|
Connect Voice Connect to a voice channel.
|
|
CreateInstantInvite General Create an invite to the channel.
|
|
DeafenMembers Voice Prevent users of a voice channel from hearing other users (server-wide).
|
|
EmbedLinks Text Create embedded links.
|
|
ManageChannel General Manage a channel.
|
|
ManageMessages Text Remove messages in a channel.
|
|
ManagePermissions General Manage the permissions of a channel.
|
|
MentionEveryone Text Use @everyone in a channel.
|
|
MoveMembers Voice Move members around in voice channels.
|
|
MuteMembers Voice Mute users of a voice channel (server-wide).
|
|
ReadMessageHistory Text Read the chat history of a voice channel.
|
|
ReadMessages Text Read any messages in a text channel; exposes the text channel to users.
|
|
SendMessages Text Send messages in a text channel.
|
|
SendTTSMessages Text Send TTS messages in a text channel.
|
|
Speak Voice Speak in a voice channel.
|
|
UseVoiceActivation Voice Use Voice Activation in a text channel (for large channels where PTT is preferred)
|
|
======================= ======= ==============
|
|
|
|
If a user has a permission, the value is true. Otherwise, it must be null.
|
|
|
|
Dual Channel Permissions
|
|
------------------------
|
|
You may also access a user's permissions in a channel with the DualChannelPermissions class.
|
|
Unlike normal ChannelPermissions, DualChannelPermissions hold three values:
|
|
|
|
If a user has a permission, the value is true. If a user is denied a permission, it will be false. If the permission is not set, the value will return null.
|
|
|
|
Setting Channel Permissions
|
|
---------------------------
|
|
|
|
To set channel permissions, you may use either two ChannelPermissions, or one DualChannelPermissions.
|
|
|
|
In the case of using two Channel Permissions, you must create one list of allowed permissions, and one list of denied permissions.
|
|
Otherwise, you can use a single DualChannelPermissions.
|
|
|
|
Server Permissions
|
|
------------------
|
|
|
|
Server Permissions can be accessed by ``Server.GetPermissions(User)``, and updated with ``Server.UpdatePermissions(User, ServerPermissions)``
|
|
|
|
A user's server permissions also contain the default values for it's channel permissions, so the channel permissions listed above are also valid flags for Server Permissions. There are also a few extra Server Permissions:
|
|
|
|
======================= ======= ==============
|
|
Flag Type Description
|
|
======================= ======= ==============
|
|
BanMembers Server Ban users from the server.
|
|
KickMembers Server Kick users from the server. They can still rejoin.
|
|
ManageRoles Server Manage roles on the server, and their permissions.
|
|
ManageChannels Server Manage channels that exist on the server (add, remove them)
|
|
ManageServer Server Manage the server settings.
|
|
======================= ======= ==============
|
|
|
|
Roles
|
|
-----
|
|
|
|
Managing permissions for roles is much easier than for users in channels. For roles, just access the flag under `Role.Permissions`.
|
|
|
|
Example
|
|
-------
|
|
|
|
.. literalinclude:: /samples/permissions.cs
|
|
:language: csharp6
|
|
:tab-width: 2
|