global: Modified the unicode in |stub| to be compatible with sphinx. Still appears as a wrench in the browser. events: added information for events, and a list of events, as well as their arg paramater. Still marked as 'WIP', as I feel my documentation was a bit lacking permissions: added information for channel\server permissions, dual channel permissions, and roles. need to update with bits at some point.tags/docs-0.9
| @@ -1,4 +1,75 @@ | |||
| |stub| Events | |||
| ============= | |||
| |stub-desc| | |||
| Usage | |||
| ----- | |||
| To take advantage of Events in Discord.Net, you need to hook into them. | |||
| There are two ways of hooking into events. See the example for examples on using these events. | |||
| Usable Events | |||
| ------------- | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | Event Name | EventArgs | Description | | |||
| +====================+====================+==========================================+ | |||
| | UserBanned | BanEventArgs | Called when a user is banned. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserUnbanned | BanEventArgs | Called when a user is unbanned. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ChannelCreated | ChannelEventArgs | Called when a channel is created. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ChannelDestroyed | ChannelEventArgs | Called when a channel is destroyed. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ChannelUpdated | ChannelEventArgs | Called when a channel is updated. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | MessageReceived | MessageEventArgs | Called when a message is received. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | MessageSent | MessageEventArgs | Called when a message is sent. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | MessageDeleted | MessageEventArgs | Called when a message is deleted. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | MessageUpdated | MessageEventArgs | Called when a message is updated\\edited.| | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | MessageReadRemotely| MessageEventArgs | Called when a message is read. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | RoleCreated | RoleEventArgs | Called when a role is created. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | RoleUpdated | RoleEventArgs | Called when a role is updated. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | RoleDeleted | RoleEventArgs | Called when a role is deleted. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | JoinedServer | ServerEventArgs | Called when a member joins a server. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | LeftServer | ServerEventArgs | Called when a member leaves a server. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ServerUpdated | ServerEventArgs | Called when a server is updated. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ServerUnavailable | ServerEventArgs | Called when a Discord server goes down. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ServerAvailable | ServerEventArgs |Called when a Discord server goes back up.| | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserJoined | UserEventArgs | Called when a user joins a Channel. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserLeft | UserEventArgs | Called when a user leaves a Channel. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserUpdated | UserEventArgs | --- | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserPresenceUpdated| UserEventArgs | Called when a user's presence changes. | | |||
| | | | (Here\\Away) | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserVoiceState | UserEventArgs | Called when a user's voice state changes.| | |||
| | Updated | | (Muted\\Unmuted) | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| |UserIsTypingUpdated | UserEventArgs | Called when a user starts\\stops typing. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | UserIsSpeaking | UserEventArgs | Called when a user's voice state changes.| | |||
| | Updated | | (Speaking\\Not Speaking) | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| | ProfileUpdated | N/A | Called when a user's profile changes. | | |||
| +--------------------+--------------------+------------------------------------------+ | |||
| Example | |||
| ------- | |||
| .. literalinclude:: /samples/events.cs | |||
| :language: csharp6 | |||
| :tab-width: 2 | |||
| @@ -1,4 +1,75 @@ | |||
| |stub| Permissions | |||
| Permissions | |||
| ================== | |||
| |stub-desc| | |||
| There are two types of permissions: *Channel Permissions* and *Server Permissions*. | |||
| Channel Permissions | |||
| ------------------- | |||
| Channel Permissions have a set of bools behind them: | |||
| ======================= ======= ============== | |||
| 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 permisisons are read-only, you cannot change them. You may still access them, however, using User.GetServerPermissions(); | |||
| 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 stil 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 | |||
| @@ -1,2 +1,2 @@ | |||
| .. |stub| unicode:: U+0D83D U+0DD27 | |||
| .. |stub| unicode:: U+1F527 | |||
| .. |stub-desc| replace:: This page is a placeholder and has not been written yet. It should be coming soon! | |||
| @@ -0,0 +1,27 @@ | |||
| class Program | |||
| { | |||
| private static DiscordBotClient _client; | |||
| static void Main(string[] args) | |||
| { | |||
| var client = new DiscordClient(); | |||
| // Handle Events using Lambdas | |||
| client.MessageCreated += (s, e) => | |||
| { | |||
| if (!e.Message.IsAuthor) | |||
| await client.SendMessage(e.Message.ChannelId, "foo"); | |||
| } | |||
| // Handle Events using Event Handlers | |||
| EventHandler<MessageEventArgs> handler = new EventHandler<MessageEventArgs>(HandleMessageCreated); | |||
| client.MessageCreated += handler; | |||
| } | |||
| // NOTE: When using this method, 'client' must be accessible from outside the Main function. | |||
| static void HandleMessageCreated(object sender, EventArgs e) | |||
| { | |||
| if (!e.Message.IsAuthor) | |||
| await client.SendMessage(e.Message.ChannelId, "foo"); | |||
| } | |||
| } | |||
| @@ -0,0 +1,28 @@ | |||
| // Finding User Permissions | |||
| void FindPermissions(User u, Channel c) | |||
| { | |||
| ChannelPermissions cperms = u.GetPermissions(c); | |||
| ServerPermissions sperms = u.GetServerPermissions(); | |||
| } | |||
| void SetPermissionsChannelPerms(User u, Channel c) | |||
| { | |||
| ChannelPermissions allow = new ChannelPermissions(); | |||
| ChannelPermissions deny = new ChannelPermissions(); | |||
| allow.Connect = true; | |||
| deny.AttachFiles = true; | |||
| client.SetChannelPermissions(c, u, allow, deny) | |||
| } | |||
| void SetPermissionsDualPerms(User u, Channel c) | |||
| { | |||
| DualChannelPermissions dual = new DualChannelPermissions(); | |||
| dual.ReadMessageHistory = false; | |||
| dual.Connect = true; | |||
| dual.AttachFiles = null; | |||
| client.SetChannelPermissions(c, u, dual); | |||
| } | |||