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| 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! | .. |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); | |||||
| } | |||||