diff --git a/src/Discord.Net.Analyzers/Discord.Net.Analyzers.csproj b/src/Discord.Net.Analyzers/Discord.Net.Analyzers.csproj index 1b2ee45bf..3f986a639 100644 --- a/src/Discord.Net.Analyzers/Discord.Net.Analyzers.csproj +++ b/src/Discord.Net.Analyzers/Discord.Net.Analyzers.csproj @@ -6,6 +6,9 @@ A Discord.Net extension adding support for design-time analysis of the API usage. netstandard2.0;netstandard2.1 + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.Analyzers\Discord.Net.Analyzers.xml + diff --git a/src/Discord.Net.Commands/Discord.Net.Commands.csproj b/src/Discord.Net.Commands/Discord.Net.Commands.csproj index 04305056a..183493d29 100644 --- a/src/Discord.Net.Commands/Discord.Net.Commands.csproj +++ b/src/Discord.Net.Commands/Discord.Net.Commands.csproj @@ -7,12 +7,15 @@ A Discord.Net Labs extension adding support for bot commands. net461;netstandard2.0;netstandard2.1 netstandard2.0;netstandard2.1 - 2.3.2 + 2.3.3 Discord.Net.Labs.Commands https://github.com/Discord-Net-Labs/Discord.Net-Labs https://github.com/Discord-Net-Labs/Discord.Net-Labs Temporary.png + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.Commands\Discord.Net.Commands.xml + diff --git a/src/Discord.Net.Commands/Discord.Net.Commands.xml b/src/Discord.Net.Commands/Discord.Net.Commands.xml new file mode 100644 index 000000000..7da918622 --- /dev/null +++ b/src/Discord.Net.Commands/Discord.Net.Commands.xml @@ -0,0 +1,1494 @@ + + + + Discord.Net.Commands + + + + + Marks the aliases for a command. + + + This attribute allows a command to have one or multiple aliases. In other words, the base command can have + multiple aliases when triggering the command itself, giving the end-user more freedom of choices when giving + hot-words to trigger the desired command. See the example for a better illustration. + + + In the following example, the command can be triggered with the base name, "stats", or either "stat" or + "info". + + [Command("stats")] + [Alias("stat", "info")] + public async Task GetStatsAsync(IUser user) + { + // ...pull stats + } + + + + + + Gets the aliases which have been defined for the command. + + + + + Creates a new with the given aliases. + + + + + Marks the execution information for a command. + + + + + Gets the text that has been set to be recognized as a command. + + + + + Specifies the of the command. This affects how the command is executed. + + + + + + + + Initializes a new attribute with the specified name. + + The name of the command. + + + + Prevents the marked module from being loaded automatically. + + + This attribute tells to ignore the marked module from being loaded + automatically (e.g. the method). If a non-public module marked + with this attribute is attempted to be loaded manually, the loading process will also fail. + + + + + Prevents the marked property from being injected into a module. + + + This attribute prevents the marked member from being injected into its parent module. Useful when you have a + public property that you do not wish to invoke the library's dependency injection service. + + + In the following example, DatabaseService will not be automatically injected into the module and will + not throw an error message if the dependency fails to be resolved. + + public class MyModule : ModuleBase + { + [DontInject] + public DatabaseService DatabaseService; + public MyModule() + { + DatabaseService = DatabaseFactory.Generate(); + } + } + + + + + + Marks the module as a command group. + + + + + Gets the prefix set for the module. + + + + + + + + Initializes a new with the provided prefix. + + The prefix of the module group. + + + + Marks the public name of a command, module, or parameter. + + + + + Gets the name of the command. + + + + + Marks the public name of a command, module, or parameter with the provided name. + + The public name of the object. + + + + Instructs the command system to treat command parameters of this type + as a collection of named arguments matching to its properties. + + + + + Marks the to be read by the specified . + + + This attribute will override the to be used when parsing for the + desired type in the command. This is useful when one wishes to use a particular + without affecting other commands that are using the same target + type. + + If the given type reader does not inherit from , an + will be thrown. + + + + In this example, the will be read by a custom + , FriendlyTimeSpanTypeReader, instead of the + shipped by Discord.Net. + + [Command("time")] + public Task GetTimeAsync([OverrideTypeReader(typeof(FriendlyTimeSpanTypeReader))]TimeSpan time) + => ReplyAsync(time); + + + + + + Gets the specified of the parameter. + + + + + The to be used with the parameter. + The given does not inherit from . + + + + Requires the parameter to pass the specified precondition before execution can begin. + + + + + + Checks whether the condition is met before execution of the command. + + The context of the command. + The parameter of the command being checked against. + The raw value of the parameter. + The service collection used for dependency injection. + + + + Requires the module or class to pass the specified precondition before execution can begin. + + + + + + Specifies a group that this precondition belongs to. + + + of the same group require only one of the preconditions to pass in order to + be successful (A || B). Specifying = null or not at all will + require *all* preconditions to pass, just like normal (A && B). + + + + + When overridden in a derived class, uses the supplied string + as the error message if the precondition doesn't pass. + Setting this for a class that doesn't override + this property is a no-op. + + + + + Checks if the has the sufficient permission to be executed. + + The context of the command. + The command being executed. + The service collection used for dependency injection. + + + + Requires the bot to have a specific permission in the channel a command is invoked in. + + + + + Gets the specified of the precondition. + + + + + Gets the specified of the precondition. + + + + + + + + Gets or sets the error message if the precondition + fails due to being run outside of a Guild channel. + + + + + Requires the bot account to have a specific . + + + This precondition will always fail if the command is being invoked in a . + + + The that the bot must have. Multiple permissions can be specified + by ORing the permissions together. + + + + + Requires that the bot account to have a specific . + + + The that the bot must have. Multiple permissions can be + specified by ORing the permissions together. + + + + + + + + Defines the type of command context (i.e. where the command is being executed). + + + + + Specifies the command to be executed within a guild. + + + + + Specifies the command to be executed within a DM. + + + + + Specifies the command to be executed within a group. + + + + + Requires the command to be invoked in a specified context (e.g. in guild, DM). + + + + + Gets the context required to execute the command. + + + + + + + Requires the command to be invoked in the specified context. + The type of context the command can be invoked in. Multiple contexts can be specified by ORing the contexts together. + + + [Command("secret")] + [RequireContext(ContextType.DM | ContextType.Group)] + public Task PrivateOnlyAsync() + { + return ReplyAsync("shh, this command is a secret"); + } + + + + + + + + + Requires the command to be invoked in a channel marked NSFW. + + + The precondition will restrict the access of the command or module to be accessed within a guild channel + that has been marked as mature or NSFW. If the channel is not of type or the + channel is not marked as NSFW, the precondition will fail with an erroneous . + + + The following example restricts the command too-cool to an NSFW-enabled channel only. + + public class DankModule : ModuleBase + { + [Command("cool")] + public Task CoolAsync() + => ReplyAsync("I'm cool for everyone."); + + [RequireNsfw] + [Command("too-cool")] + public Task TooCoolAsync() + => ReplyAsync("You can only see this if you're cool enough."); + } + + + + + + + + + + + + Requires the command to be invoked by the owner of the bot. + + + This precondition will restrict the access of the command or module to the owner of the Discord application. + If the precondition fails to be met, an erroneous will be returned with the + message "Command can only be run by the owner of the bot." + + This precondition will only work if the account has a of + ;otherwise, this precondition will always fail. + + + + The following example restricts the command to a set of sensitive commands that only the owner of the bot + application should be able to access. + + [RequireOwner] + [Group("admin")] + public class AdminModule : ModuleBase + { + [Command("exit")] + public async Task ExitAsync() + { + Environment.Exit(0); + } + } + + + + + + + + + + + + Requires the user invoking the command to have a specified permission. + + + + + Gets the specified of the precondition. + + + + + Gets the specified of the precondition. + + + + + + + + Gets or sets the error message if the precondition + fails due to being run outside of a Guild channel. + + + + + Requires that the user invoking the command to have a specific . + + + This precondition will always fail if the command is being invoked in a . + + + The that the user must have. Multiple permissions can be + specified by ORing the permissions together. + + + + + Requires that the user invoking the command to have a specific . + + + The that the user must have. Multiple permissions can be + specified by ORing the permissions together. + + + + + + + + Sets priority of commands. + + + + + Gets the priority which has been set for the command. + + + + + Initializes a new attribute with the given priority. + + + + + Marks the input to not be parsed by the parser. + + + + + Attaches remarks to your commands. + + + + + Attaches a summary to your command. + + + + Only the last parameter in a command may have the Remainder or Multiple flag. + + + The context of a command which may contain the client, user, guild, channel, and message. + + + + + + + + + + + + + + + + + + Indicates whether the channel that the command is executed in is a private channel. + + + + Initializes a new class with the provided client and message. + + The underlying client. + The underlying message. + + + Defines the type of error a command can throw. + + + + Thrown when the command is unknown. + + + + + Thrown when the command fails to be parsed. + + + + + Thrown when the input text has too few or too many arguments. + + + + + Thrown when the object cannot be found by the . + + + + + Thrown when more than one object is matched by . + + + + + Thrown when the command fails to meet a 's conditions. + + + + + Thrown when an exception occurs mid-command execution. + + + + + Thrown when the command is not successfully executed on runtime. + + + + + The exception that is thrown if another exception occurs during a command execution. + + + + Gets the command that caused the exception. + + + Gets the command context of the exception. + + + + Initializes a new instance of the class using a + information, a context, and the exception that + interrupted the execution. + + The command information. + The context of the command. + The exception that interrupted the command execution. + + + The command that matches the search result. + + + The alias of the command. + + + + Provides a framework for building Discord commands. + + + + The service provides a framework for building Discord commands both dynamically via runtime builders or + statically via compile-time modules. To create a command module at compile-time, see + (most common); otherwise, see . + + + This service also provides several events for monitoring command usages; such as + for any command-related log events, and + for information about commands that have + been successfully executed. + + + + + + Occurs when a command-related information is received. + + + + + Occurs when a command is executed. + + + This event is fired when a command has been executed, successfully or not. When a command fails to + execute during parsing or precondition stage, the CommandInfo may not be returned. + + + + + Represents all modules loaded within . + + + + + Represents all commands loaded within . + + + + + Represents all loaded within . + + + + + Initializes a new class. + + + + + Initializes a new class with the provided configuration. + + The configuration class. + + The cannot be set to . + + + + + Add a command module from a . + + + The following example registers the module MyModule to commandService. + + await commandService.AddModuleAsync<MyModule>(serviceProvider); + + + The type of module. + The for your dependency injection solution if using one; otherwise, pass null. + This module has already been added. + + The fails to be built; an invalid type may have been provided. + + + A task that represents the asynchronous operation for adding the module. The task result contains the + built module. + + + + + Adds a command module from a . + + The type of module. + The for your dependency injection solution if using one; otherwise, pass null . + This module has already been added. + + The fails to be built; an invalid type may have been provided. + + + A task that represents the asynchronous operation for adding the module. The task result contains the + built module. + + + + + Add command modules from an . + + The containing command modules. + The for your dependency injection solution if using one; otherwise, pass null. + + A task that represents the asynchronous operation for adding the command modules. The task result + contains an enumerable collection of modules added. + + + + + Removes the command module. + + The to be removed from the service. + + A task that represents the asynchronous removal operation. The task result contains a value that + indicates whether the is successfully removed. + + + + + Removes the command module. + + The of the module. + + A task that represents the asynchronous removal operation. The task result contains a value that + indicates whether the module is successfully removed. + + + + + Removes the command module. + + The of the module. + + A task that represents the asynchronous removal operation. The task result contains a value that + indicates whether the module is successfully removed. + + + + + Adds a custom to this for the supplied object + type. + If is a , a nullable will + also be added. + If a default exists for , a warning will be logged + and the default will be replaced. + + The object type to be read by the . + An instance of the to be added. + + + + Adds a custom to this for the supplied object + type. + If is a , a nullable for the + value type will also be added. + If a default exists for , a warning will be logged and + the default will be replaced. + + A instance for the type to be read. + An instance of the to be added. + + + + Adds a custom to this for the supplied object + type. + If is a , a nullable will + also be added. + + The object type to be read by the . + An instance of the to be added. + + Defines whether the should replace the default one for + if it exists. + + + + + Adds a custom to this for the supplied object + type. + If is a , a nullable for the + value type will also be added. + + A instance for the type to be read. + An instance of the to be added. + + Defines whether the should replace the default one for if + it exists. + + + + + Searches for the command. + + The context of the command. + The position of which the command starts at. + The result containing the matching commands. + + + + Searches for the command. + + The context of the command. + The command string. + The result containing the matching commands. + + + + Executes the command. + + The context of the command. + The position of which the command starts at. + The service to be used in the command's dependency injection. + The handling mode when multiple command matches are found. + + A task that represents the asynchronous execution operation. The task result contains the result of the + command execution. + + + + + Executes the command. + + The context of the command. + The command string. + The service to be used in the command's dependency injection. + The handling mode when multiple command matches are found. + + A task that represents the asynchronous execution operation. The task result contains the result of the + command execution. + + + + + Represents a configuration class for . + + + + + Gets or sets the default commands should have, if one is not specified on the + Command attribute or builder. + + + + + Gets or sets the that separates an argument with another. + + + + + Gets or sets whether commands should be case-sensitive. + + + + + Gets or sets the minimum log level severity that will be sent to the event. + + + + + Gets or sets whether commands should push exceptions up to the caller. + + + + + Collection of aliases for matching pairs of string delimiters. + The dictionary stores the opening delimiter as a key, and the matching closing delimiter as the value. + If no value is supplied will be used, which contains + many regional equivalents. + Only values that are specified in this map will be used as string delimiters, so if " is removed then + it won't be used. + If this map is set to null or empty, the default delimiter of " will be used. + + + + QuotationMarkAliasMap = new Dictionary<char, char>() + { + {'\"', '\"' }, + {'“', '”' }, + {'「', '」' }, + } + + + + + + Gets or sets a value that indicates whether extra parameters should be ignored. + + + + + Provides extension methods for the class. + + + + + Returns commands that can be executed under the current context. + + The set of commands to be checked against. + The current command context. + The service provider used for dependency injection upon precondition check. + + A read-only collection of commands that can be executed under the current context. + + + + + Returns commands that can be executed under the current context. + + The desired command service class to check against. + The current command context. + The service provider used for dependency injection upon precondition check. + + A read-only collection of commands that can be executed under the current context. + + + + + Returns commands that can be executed under the current context. + + The module to be checked against. + The current command context. + The service provider used for dependency injection upon precondition check. + + A read-only collection of commands that can be executed under the current context. + + + + + Provides extension methods for that relates to commands. + + + + + Gets whether the message starts with the provided character. + + The message to check against. + The char prefix. + References where the command starts. + + true if the message begins with the char ; otherwise false. + + + + + Gets whether the message starts with the provided string. + + + + + Gets whether the message starts with the user's mention string. + + + + + Provides the information of a command. + + + This object contains the information of a command. This can include the module of the command, various + descriptions regarding the command, and its . + + + + + Gets the module that the command belongs in. + + + + + Gets the name of the command. If none is set, the first alias is used. + + + + + Gets the summary of the command. + + + This field returns the summary of the command. and can be + useful in help commands and various implementation that fetches details of the command for the user. + + + + + Gets the remarks of the command. + + + This field returns the summary of the command. and can be + useful in help commands and various implementation that fetches details of the command for the user. + + + + + Gets the priority of the command. This is used when there are multiple overloads of the command. + + + + + Indicates whether the command accepts a [] for its + parameter. + + + + + Indicates whether extra arguments should be ignored for this command. + + + + + Gets the that is being used for the command. + + + + + Gets a list of aliases defined by the of the command. + + + + + Gets a list of information about the parameters of the command. + + + + + Gets a list of preconditions defined by the of the command. + + + + + Gets a list of attributes of the command. + + + + + Provides the information of a module. + + + + + Gets the command service associated with this module. + + + + + Gets the name of this module. + + + + + Gets the summary of this module. + + + + + Gets the remarks of this module. + + + + + Gets the group name (main prefix) of this module. + + + + + Gets a read-only list of aliases associated with this module. + + + + + Gets a read-only list of commands associated with this module. + + + + + Gets a read-only list of preconditions that apply to this module. + + + + + Gets a read-only list of attributes that apply to this module. + + + + + Gets a read-only list of submodules associated with this module. + + + + + Gets the parent module of this submodule if applicable. + + + + + Gets a value that indicates whether this module is a submodule or not. + + + + + Provides the information of a parameter. + + + + + Gets the command that associates with this parameter. + + + + + Gets the name of this parameter. + + + + + Gets the summary of this parameter. + + + + + Gets a value that indicates whether this parameter is optional or not. + + + + + Gets a value that indicates whether this parameter is a remainder parameter or not. + + + + + Gets the type of the parameter. + + + + + Gets the default value for this optional parameter if applicable. + + + + + Gets a read-only list of precondition that apply to this parameter. + + + + + Gets a read-only list of attributes that apply to this parameter. + + + + Cannot add commands to the root node. + + + + Provides a base class for a command module to inherit from. + + + + + Provides a base class for a command module to inherit from. + + A class that implements . + + + + The underlying context of the command. + + + + + + + Sends a message to the source channel. + + + Contents of the message; optional only if is specified. + + Specifies if Discord should read this aloud using text-to-speech. + An embed to be displayed alongside the . + + Specifies if notifications are sent for mentioned users and roles in the . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + + + + The method to execute before executing the command. + + The of the command to be executed. + + + + The method to execute after executing the command. + + The of the command to be executed. + + + + The method to execute when building the module. + + The used to create the module. + The builder used to build the module. + + + + Specifies the behavior when multiple matches are found during the command parsing stage. + + + + Indicates that when multiple results are found, an exception should be thrown. + + + Indicates that when multiple results are found, the best result should be chosen. + + + + A for parsing objects implementing . + + + This is shipped with Discord.Net and is used by default to parse any + implemented object within a command. The TypeReader will attempt to first parse the + input by mention, then the snowflake identifier, then by name; the highest candidate will be chosen as the + final output; otherwise, an erroneous is returned. + + The type to be checked; must implement . + + + + + + + + + + A for parsing objects implementing . + + The type to be checked; must implement . + + + + + + + + + must be within the range [0, 1]. + + + must be within the range [0, 1]. + + + + A for parsing objects implementing . + + The type to be checked; must implement . + + + + + + + + + + Defines a reader class that parses user input into a specified type. + + + + + Attempts to parse the into the desired type. + + The context of the command. + The raw input of the command. + The service collection used for dependency injection. + + A task that represents the asynchronous parsing operation. The task result contains the parsing result. + + + + + A for parsing objects implementing . + + The type to be checked; must implement . + + + + + + + Contains information of the command's overall execution result. + + + + + Gets the exception that may have occurred during the command execution. + + + + + + + + + + + + + + Initializes a new with no error, indicating a successful execution. + + + A that does not contain any errors. + + + + + Initializes a new with a specified and its + reason, indicating an unsuccessful execution. + + The type of error. + The reason behind the error. + + A that contains a and reason. + + + + + Initializes a new with a specified exception, indicating an unsuccessful + execution. + + The exception that caused the command execution to fail. + + A that contains the exception that caused the unsuccessful execution, along + with a of type Exception as well as the exception message as the + reason. + + + + + Initializes a new with a specified result; this may or may not be an + successful execution depending on the and + specified. + + The result to inherit from. + + A that inherits the error type and reason. + + + + + Gets a string that indicates the execution result. + + + Success if is true; otherwise ": + ". + + + + + Contains information of the result related to a command. + + + + + Describes the error type that may have occurred during the operation. + + + A indicating the type of error that may have occurred during the operation; + null if the operation was successful. + + + + + Describes the reason for the error. + + + A string containing the error reason. + + + + + Indicates whether the operation was successful or not. + + + true if the result is positive; otherwise false. + + + + + Contains information for the parsing result from the command service's parser. + + + + + + + + + + + Provides information about the parameter that caused the parsing error. + + + A indicating the parameter info of the error that may have occurred during parsing; + null if the parsing was successful or the parsing error is not specific to a single parameter. + + + + + + + + Represents a result type for command preconditions. + + + + + + + + + + + + + + Initializes a new class with the command type + and reason. + + The type of failure. + The reason of failure. + + + + Returns a with no errors. + + + + + Returns a with and the + specified reason. + + The reason of failure. + + + + Returns a with the specified type. + + The result of failure. + + + + Returns a string indicating whether the is successful. + + + + + Initializes a new class with the type of error and reason. + + The type of failure, or null if none. + The reason of failure. + + + + + + Describes the execution reason or result. + + + + + + + + + + + + + + + + + + + + + + + + + + + TypeReaderResult was not successful. + + + + Specifies the behavior of the command execution workflow. + + + + + + + The default behaviour set in . + + + + + Executes the command on the same thread as gateway one. + + + + + Executes the command on a different thread from the gateway one. + + + + + Utility class which contains the default matching pairs of quotation marks for CommandServiceConfig + + + + + A default map of open-close pairs of quotation marks. + Contains many regional and Unicode equivalents. + Used in the . + + + + + diff --git a/src/Discord.Net.Core/Discord.Net.Core.csproj b/src/Discord.Net.Core/Discord.Net.Core.csproj index 3de56281f..38cc03c8f 100644 --- a/src/Discord.Net.Core/Discord.Net.Core.csproj +++ b/src/Discord.Net.Core/Discord.Net.Core.csproj @@ -8,13 +8,16 @@ net461;netstandard2.0;netstandard2.1 netstandard2.0;netstandard2.1 Discord.Net.Labs.Core - 2.3.6 + 2.3.7 Discord.Net.Labs.Core https://github.com/Discord-Net-Labs/Discord.Net-Labs Temporary.png 2.3.2 2.3.2 + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.Core\Discord.Net.Core.xml + diff --git a/src/Discord.Net.Core/Discord.Net.Core.xml b/src/Discord.Net.Core/Discord.Net.Core.xml new file mode 100644 index 000000000..53e74814b --- /dev/null +++ b/src/Discord.Net.Core/Discord.Net.Core.xml @@ -0,0 +1,10550 @@ + + + + Discord.Net.Core + + + + + Reading this stream is not supported. + + + + Setting the length to this stream is not supported. + + + + Seeking this stream is not supported.. + + + This stream does not accept headers. + + + + Reading stream length is not supported. + + + + Getting or setting this stream position is not supported. + + + + Reading this stream is not supported. + + + + Setting the length to this stream is not supported. + + + + Seeking this stream is not supported.. + + + Gets the current connection state of this client. + + + Gets the estimated round-trip latency, in milliseconds, to the voice WebSocket server. + + + Gets the estimated round-trip latency, in milliseconds, to the voice UDP server. + + + Gets the current audio streams. + + + Creates a new outgoing stream accepting Opus-encoded data. + + + Creates a new outgoing stream accepting Opus-encoded data. This is a direct stream with no internal timer. + + + Creates a new outgoing stream accepting PCM (raw) data. + + + Creates a new direct outgoing stream accepting PCM (raw) data. This is a direct stream with no internal timer. + + + + Represents a class containing the strings related to various Content Delivery Networks (CDNs). + + + + + Returns a team icon URL. + + The team identifier. + The icon identifier. + + A URL pointing to the team's icon. + + + + + Returns an application icon URL. + + The application identifier. + The icon identifier. + + A URL pointing to the application's icon. + + + + + Returns a user avatar URL. + + The user snowflake identifier. + The avatar identifier. + The size of the image to return in horizontal pixels. This can be any power of two between 16 and 2048. + The format to return. + + A URL pointing to the user's avatar in the specified size. + + + + + Returns the default user avatar URL. + + The discriminator value of a user. + + A URL pointing to the user's default avatar when one isn't set. + + + + + Returns an icon URL. + + The guild snowflake identifier. + The icon identifier. + + A URL pointing to the guild's icon. + + + + + Returns a guild splash URL. + + The guild snowflake identifier. + The splash icon identifier. + + A URL pointing to the guild's splash. + + + + + Returns a guild discovery splash URL. + + The guild snowflake identifier. + The discovery splash icon identifier. + + A URL pointing to the guild's discovery splash. + + + + + Returns a channel icon URL. + + The channel snowflake identifier. + The icon identifier. + + A URL pointing to the channel's icon. + + + + + Returns a guild banner URL. + + The guild snowflake identifier. + The banner image identifier. + The size of the image to return in horizontal pixels. This can be any power of two between 16 and 2048 inclusive. + + A URL pointing to the guild's banner image. + + + + + Returns an emoji URL. + + The emoji snowflake identifier. + Whether this emoji is animated. + + A URL pointing to the custom emote. + + + + + Returns a Rich Presence asset URL. + + The application identifier. + The asset identifier. + The size of the image to return in. This can be any power of two between 16 and 2048. + The format to return. + + A URL pointing to the asset image in the specified size. + + + + + Returns a Spotify album URL. + + The identifier for the album art (e.g. 6be8f4c8614ecf4f1dd3ebba8d8692d8ce4951ac). + + A URL pointing to the Spotify album art. + + + + + Returns a Spotify direct URL for a track. + + The identifier for the track (e.g. 4uLU6hMCjMI75M1A2tKUQC). + + A URL pointing to the Spotify track. + + + + + Represents a context of a command. This may include the client, guild, channel, user, and message. + + + + + Gets the that the command is executed with. + + + + + Gets the that the command is executed in. + + + + + Gets the that the command is executed in. + + + + + Gets the who executed the command. + + + + + Gets the that the command is interpreted from. + + + + Specifies the connection state of a client. + + + The client has disconnected from Discord. + + + The client is connecting to Discord. + + + The client has established a connection to Discord. + + + The client is disconnecting from Discord. + + + + Defines various behaviors of Discord.Net. + + + + + Returns the API version Discord.Net uses. + + + An representing the API version that Discord.Net uses to communicate with Discord. + A list of available API version can be seen on the official + Discord API documentation + . + + + + + Returns the Voice API version Discord.Net uses. + + + An representing the API version that Discord.Net uses to communicate with Discord's + voice server. + + + + + Gets the Discord.Net version, including the build number. + + + A string containing the detailed version information, including its build number; Unknown when + the version fails to be fetched. + + + + + Gets the user agent that Discord.Net uses in its clients. + + + The user agent used in each Discord.Net request. + + + + + Returns the base Discord API URL. + + + The Discord API URL using . + + + + + Returns the base Discord CDN URL. + + + The base Discord Content Delivery Network (CDN) URL. + + + + + Returns the base Discord invite URL. + + + The base Discord invite URL. + + + + + Returns the default timeout for requests. + + + The amount of time it takes in milliseconds before a request is timed out. + + + + + Returns the max length for a Discord message. + + + The maximum length of a message allowed by Discord. + + + + + Returns the max messages allowed to be in a request. + + + The maximum number of messages that can be gotten per-batch. + + + + + Returns the max users allowed to be in a request. + + + The maximum number of users that can be gotten per-batch. + + + + + Returns the max guilds allowed to be in a request. + + + The maximum number of guilds that can be gotten per-batch. + + + + + Returns the max user reactions allowed to be in a request. + + + The maximum number of user reactions that can be gotten per-batch. + + + + + Returns the max audit log entries allowed to be in a request. + + + The maximum number of audit log entries that can be gotten per-batch. + + + + + Gets or sets how a request should act in the case of an error, by default. + + + The currently set . + + + + + Gets or sets the minimum log level severity that will be sent to the Log event. + + + The currently set for logging level. + + + + + Gets or sets whether the initial log entry should be printed. + + + If set to true, the library will attempt to print the current version of the library, as well as + the API version it uses on startup. + + + + + Gets or sets the level of precision of the rate limit reset response. + + + If set to , this value will be rounded up to the + nearest second. + + + The currently set . + + + + + Gets or sets whether or not rate-limits should use the system clock. + + + If set to false, we will use the X-RateLimit-Reset-After header + to determine when a rate-limit expires, rather than comparing the + X-RateLimit-Reset timestamp to the system time. + + This should only be changed to false if the system is known to have + a clock that is out of sync. Relying on the Reset-After header will + incur network lag. + + Regardless of this property, we still rely on the system's wall-clock + to determine if a bucket is rate-limited; we do not use any monotonic + clock. Your system will still need a stable clock. + + + + + Flags for the property, that are ORd together. + These describe what the activity payload includes. + + + + + Indicates that no actions on this activity can be taken. + + + + + Indicates that this activity can be joined. + + + + + Indicates that this activity can be spectated. + + + + + Indicates that a user may request to join an activity. + + + + + Indicates that a user can listen along in Spotify. + + + + + Indicates that a user can play this song. + + + + + Specifies a Discord user's activity type. + + + + + The user is playing a game. + + + + + The user is streaming online. + + + + + The user is listening to a song. + + + + + The user is watching some form of media. + + + + + The user has set a custom status. + + + + + A user's activity for their custom status. + + + + + Gets the emote, if it is set. + + + An containing the or set by the user. + + + + + Gets the timestamp of when this status was created. + + + A containing the time when this status was created. + + + + + Gets the state of the status. + + + + + A user's game status. + + + + + + + + + + + + + + + + + Creates a with the provided name and . + + The name of the game. + The type of activity. + + + Returns the name of the . + + + + An asset for a object containing the text and image. + + + + + Gets the description of the asset. + + + A string containing the description of the asset. + + + + + Gets the image ID of the asset. + + + A string containing the unique image identifier of the asset. + + + + + Returns the image URL of the asset. + + The size of the image to return in. This can be any power of two between 16 and 2048. + The format to return. + + A string pointing to the image URL of the asset; null when the application ID does not exist. + + + + + Party information for a object. + + + + + Gets the ID of the party. + + + A string containing the unique identifier of the party. + + + + + Gets the party's current and maximum size. + + + A representing the capacity of the party. + + + + + Party secret for a object. + + + + + Gets the secret for a specific instanced match. + + + + + Gets the secret for joining a party. + + + + + Gets the secret for spectating a game. + + + + + Timestamps for a object. + + + + + Gets when the activity started. + + + + + Gets when the activity ends. + + + + + A user's activity status, typically a . + + + + + Gets the name of the activity. + + + A string containing the name of the activity that the user is doing. + + + + + Gets the type of the activity. + + + The type of activity. + + + + + Gets the flags that are relevant to this activity. + + + This value is determined by bitwise OR-ing values together. + + + The value of flags for this activity. + + + + + Gets the details on what the player is currently doing. + + + A string describing what the player is doing. + + + + + A user's Rich Presence status. + + + + + Gets the user's current party status. + + + + + Gets the application ID for the game. + + + + + Gets the small image for the presence and their hover texts. + + + + + Gets the large image for the presence and their hover texts. + + + + + Gets the information for the current party of the player. + + + + + Gets the secrets for Rich Presence joining and spectating. + + + + + Gets the timestamps for start and/or end of the game. + + + + + Returns the name of the Rich Presence. + + + + + A user's activity for listening to a song on Spotify. + + + + + Gets the song's artist(s). + + + A collection of string containing all artists featured in the track (e.g. Avicii; Rita Ora). + + + + + Gets the Spotify album title of the song. + + + A string containing the name of the album (e.g. AVĪCI (01)). + + + + + Gets the track title of the song. + + + A string containing the name of the song (e.g. Lonely Together (feat. Rita Ora)). + + + + + Gets the date when the track started playing. + + + A containing the start timestamp of the song. + + + + + Gets the date when the track ends. + + + A containing the finish timestamp of the song. + + + + + Gets the duration of the song. + + + A containing the duration of the song. + + + + + Gets the elapsed duration of the song. + + + A containing the elapsed duration of the song. + + + + + Gets the remaining duration of the song. + + + A containing the remaining duration of the song. + + + + + Gets the track ID of the song. + + + A string containing the Spotify ID of the track (e.g. 7DoN0sCGIT9IcLrtBDm4f0). + + + + + Gets the session ID of the song. + + + The purpose of this property is currently unknown. + + + A string containing the session ID. + + + + + Gets the URL of the album art. + + + A URL pointing to the album art of the track (e.g. + https://i.scdn.co/image/ba2fd8823d42802c2f8738db0b33a4597f2f39e7). + + + + + Gets the direct Spotify URL of the track. + + + A URL pointing directly to the track on Spotify. (e.g. + https://open.spotify.com/track/7DoN0sCGIT9IcLrtBDm4f0). + + + + + Gets the full information of the song. + + + A string containing the full information of the song (e.g. + Avicii, Rita Ora - Lonely Together (feat. Rita Ora) (3:08) + + + + + A user's activity for streaming on services such as Twitch. + + + + + Gets the URL of the stream. + + + + + Creates a new based on the on the stream URL. + + The name of the stream. + The URL of the stream. + + + + Gets the name of the stream. + + + + + Representing a type of action within an . + + + + + this guild was updated. + + + + + A channel was created. + + + + + A channel was updated. + + + + + A channel was deleted. + + + + + A permission overwrite was created for a channel. + + + + + A permission overwrite was updated for a channel. + + + + + A permission overwrite was deleted for a channel. + + + + + A user was kicked from this guild. + + + + + A prune took place in this guild. + + + + + A user banned another user from this guild. + + + + + A user unbanned another user from this guild. + + + + + A guild member whose information was updated. + + + + + A guild member's role collection was updated. + + + + + A guild member moved to a voice channel. + + + + + A guild member disconnected from a voice channel. + + + + + A bot was added to this guild. + + + + + A role was created in this guild. + + + + + A role was updated in this guild. + + + + + A role was deleted from this guild. + + + + + An invite was created in this guild. + + + + + An invite was updated in this guild. + + + + + An invite was deleted from this guild. + + + + + A Webhook was created in this guild. + + + + + A Webhook was updated in this guild. + + + + + A Webhook was deleted from this guild. + + + + + An emoji was created in this guild. + + + + + An emoji was updated in this guild. + + + + + An emoji was deleted from this guild. + + + + + A message was deleted from this guild. + + + + + Multiple messages were deleted from this guild. + + + + + A message was pinned from this guild. + + + + + A message was unpinned from this guild. + + + + + Represents data applied to an . + + + + + Represents a generic audit log entry. + + + + + Gets the action which occurred to create this entry. + + + The type of action for this audit log entry. + + + + + Gets the data for this entry. + + + An for this audit log entry; null if no data is available. + + + + + Gets the user responsible for causing the changes. + + + A user object. + + + + + Gets the reason behind the change. + + + A string containing the reason for the change; null if none is provided. + + + + + Specifies the cache mode that should be used. + + + + + Allows the object to be downloaded if it does not exist in the current cache. + + + + + Only allows the object to be pulled from the existing cache. + + + + Defines the types of channels. + + + The channel is a text channel. + + + The channel is a Direct Message channel. + + + The channel is a voice channel. + + + The channel is a group channel. + + + The channel is a category channel. + + + The channel is a news channel. + + + + Specifies the direction of where message(s) should be retrieved from. + + + This enum is used to specify the direction for retrieving messages. + + At the time of writing, is not yet implemented into + . + Attempting to use the method with will throw + a . + + + + + + The message(s) should be retrieved before a message. + + + + + The message(s) should be retrieved after a message. + + + + + The message(s) should be retrieved around a message. + + + + + Properties that are used to modify an with the specified changes. + + + + + + Gets or sets the channel to this name. + + + This property defines the new name for this channel. + + When modifying an , the must be alphanumeric with + dashes. It must match the RegEx [a-z0-9-_]{2,100}. + + + + + + Moves the channel to the following position. This property is zero-based. + + + + + Gets or sets the category ID for this channel. + + + Setting this value to a category's snowflake identifier will change or set this channel's parent to the + specified channel; setting this value to will detach this channel from its parent if one + is set. + + + + + Gets or sets the permission overwrites for this channel. + + + + + Represents a generic audio channel. + + + + + Connects to this audio channel. + + Determines whether the client should deaf itself upon connection. + Determines whether the client should mute itself upon connection. + Determines whether the audio client is an external one or not. + + A task representing the asynchronous connection operation. The task result contains the + responsible for the connection. + + + + + Disconnects from this audio channel. + + + A task representing the asynchronous operation for disconnecting from the audio channel. + + + + + Represents a generic category channel. + + + + + Represents a generic channel. + + + + + Gets the name of this channel. + + + A string containing the name of this channel. + + + + + Gets a collection of users that are able to view the channel or are currently in this channel. + + + + The returned collection is an asynchronous enumerable object; one must call + to access the individual messages as a + collection. + + This method will attempt to fetch all users that is able to view this channel or is currently in this channel. + The library will attempt to split up the requests according to and . + In other words, if there are 3000 users, and the constant + is 1000, the request will be split into 3 individual requests; thus returning 53individual asynchronous + responses, hence the need of flattening. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + Paged collection of users. + + + + + Gets a user in this channel. + + The snowflake identifier of the user (e.g. 168693960628371456). + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a user object that + represents the found user; null if none is found. + + + + + Represents a generic direct-message channel. + + + + + Gets the recipient of all messages in this channel. + + + A user object that represents the other user in this channel. + + + + + Closes this private channel, removing it from your channel list. + + The options to be used when sending the request. + + A task that represents the asynchronous close operation. + + + + + Represents a generic private group channel. + + + + + Leaves this group. + + The options to be used when sending the request. + + A task that represents the asynchronous leave operation. + + + + + Represents a generic guild channel. + + + + + + + + Gets the position of this channel. + + + An representing the position of this channel in the guild's channel list relative to + others of the same type. + + + + + Gets the guild associated with this channel. + + + A guild object that this channel belongs to. + + + + + Gets the guild ID associated with this channel. + + + An representing the guild snowflake identifier for the guild that this channel + belongs to. + + + + + Gets a collection of permission overwrites for this channel. + + + A collection of overwrites associated with this channel. + + + + + Modifies this guild channel. + + + This method modifies the current guild channel with the specified properties. To see an example of this + method and what properties are available, please refer to . + + The delegate containing the properties to modify the channel with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Gets the permission overwrite for a specific role. + + The role to get the overwrite from. + + An overwrite object for the targeted role; null if none is set. + + + + + Gets the permission overwrite for a specific user. + + The user to get the overwrite from. + + An overwrite object for the targeted user; null if none is set. + + + + + Removes the permission overwrite for the given role, if one exists. + + The role to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Removes the permission overwrite for the given user, if one exists. + + The user to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Adds or updates the permission overwrite for the given role. + + + The following example fetches a role via and a channel via + . Next, it checks if an overwrite had already been set via + ; if not, it denies the role from sending any + messages to the channel. + + + The role to add the overwrite to. + The overwrite to add to the role. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the + channel. + + + + + Adds or updates the permission overwrite for the given user. + + + The following example fetches a user via and a channel via + . Next, it checks if an overwrite had already been set via + ; if not, it denies the user from sending any + messages to the channel. + + + The user to add the overwrite to. + The overwrite to add to the user. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the channel. + + + + + Gets a collection of users that are able to view the channel or are currently in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + Paged collection of users. + + + + + Gets a user in this channel. + + The snowflake identifier of the user. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task representing the asynchronous get operation. The task result contains a guild user object that + represents the user; null if none is found. + + + + + Represents a generic channel that can send and receive messages. + + + + + Sends a message to this message channel. + + + The following example sends a message with the current system time in RFC 1123 format to the channel and + deletes itself after 5 seconds. + + + The message to be sent. + Determines whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + The following example uploads a local file called wumpus.txt along with the text + good discord boi to the channel. + + The following example uploads a local image called b1nzy.jpg embedded inside a rich embed to the + channel. + + + + This method sends a file as if you are uploading an attachment directly from your Discord client. + + If you wish to upload an image and have it embedded in a embed, + you may upload the file and refer to the file with "attachment://filename.ext" in the + . See the example section for its usage. + + + The file path of the file. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + The following example uploads a streamed image that will be called b1nzy.jpg embedded inside a + rich embed to the channel. + + + + This method sends a file as if you are uploading an attachment directly from your Discord client. + + If you wish to upload an image and have it embedded in a embed, + you may upload the file and refer to the file with "attachment://filename.ext" in the + . See the example section for its usage. + + + The of the file to be sent. + The name of the attachment. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Gets a message from this message channel. + + The snowflake identifier of the message. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents an asynchronous get operation for retrieving the message. The task result contains + the retrieved message; null if no message is found with the specified identifier. + + + + + Gets the last N messages from this message channel. + + + + The returned collection is an asynchronous enumerable object; one must call + to access the individual messages as a + collection. + + + Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual + rate limit, causing your bot to freeze! + + This method will attempt to fetch the number of messages specified under . The + library will attempt to split up the requests according to your and + . In other words, should the user request 500 messages, + and the constant is 100, the request will + be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need + of flattening. + + + The following example downloads 300 messages and gets messages that belong to the user + 53905483156684800. + + + The numbers of message to be gotten from. + The that determines whether the object should be fetched from + cache. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + + The returned collection is an asynchronous enumerable object; one must call + to access the individual messages as a + collection. + + + Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual + rate limit, causing your bot to freeze! + + This method will attempt to fetch the number of messages specified under around + the message depending on the . The library will + attempt to split up the requests according to your and + . In other words, should the user request 500 messages, + and the constant is 100, the request will + be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need + of flattening. + + + The following example gets 5 message prior to the message identifier 442012544660537354. + + The following example attempts to retrieve messageCount number of messages from the + beginning of the channel and prints them to the console. + + + The ID of the starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The that determines whether the object should be fetched from + cache. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + + The returned collection is an asynchronous enumerable object; one must call + to access the individual messages as a + collection. + + + Do not fetch too many messages at once! This may cause unwanted preemptive rate limit or even actual + rate limit, causing your bot to freeze! + + This method will attempt to fetch the number of messages specified under around + the message depending on the . The library will + attempt to split up the requests according to your and + . In other words, should the user request 500 messages, + and the constant is 100, the request will + be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need + of flattening. + + + The following example gets 5 message prior to a specific message, oldMessage. + + + The starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The that determines whether the object should be fetched from + cache. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of pinned messages in this channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation for retrieving pinned messages in this channel. + The task result contains a collection of messages found in the pinned messages. + + + + + Deletes a message. + + The snowflake identifier of the message that would be removed. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation. + + + + Deletes a message based on the provided message in this channel. + The message that would be removed. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation. + + + + + Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds. + + The options to be used when sending the request. + + A task that represents the asynchronous operation that triggers the broadcast. + + + + + Continuously broadcasts the "user is typing" message to all users in this channel until the returned + object is disposed. + + + The following example keeps the client in the typing state until LongRunningAsync has finished. + + + The options to be used when sending the request. + + A disposable object that, upon its disposal, will stop the client from broadcasting its typing state in + this channel. + + + + + Represents a type of guild channel that can be nested within a category. + + + + + Gets the parent (category) ID of this channel in the guild's channel list. + + + A representing the snowflake identifier of the parent of this channel; + null if none is set. + + + + + Gets the parent (category) channel of this channel. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the category channel + representing the parent of this channel; null if none is set. + + + + + Syncs the permissions of this nested channel with its parent's. + + The options to be used when sending the request. + + A task that represents the asynchronous operation for syncing channel permissions with its parent's. + + + + + Creates a new invite to this channel. + + + The following example creates a new invite to this channel; the invite lasts for 12 hours and can only + be used 3 times throughout its lifespan. + + await guildChannel.CreateInviteAsync(maxAge: 43200, maxUses: 3); + + + The time (in seconds) until the invite expires. Set to null to never expire. + The max amount of times this invite may be used. Set to null to have unlimited uses. + If true, the user accepting this invite will be kicked from the guild after closing their client. + If true, don't try to reuse a similar invite (useful for creating many unique one time use invites). + The options to be used when sending the request. + + A task that represents the asynchronous invite creation operation. The task result contains an invite + metadata object containing information for the created invite. + + + + + Gets a collection of all invites to this channel. + B + + The following example gets all of the invites that have been created in this channel and selects the + most used invite. + + var invites = await channel.GetInvitesAsync(); + if (invites.Count == 0) return; + var invite = invites.OrderByDescending(x => x.Uses).FirstOrDefault(); + + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of invite metadata that are created for this channel. + + + + + Represents a generic news channel in a guild that can send and receive messages. + + + + + Represents a generic channel that is private to select recipients. + + + + + Gets the users that can access this channel. + + + A read-only collection of users that can access this channel. + + + + + Represents a generic channel in a guild that can send and receive messages. + + + + + Gets a value that indicates whether the channel is NSFW. + + + true if the channel has the NSFW flag enabled; otherwise false. + + + + + Gets the current topic for this text channel. + + + A string representing the topic set in the channel; null if none is set. + + + + + Gets the current slow-mode delay for this channel. + + + An representing the time in seconds required before the user can send another + message; 0 if disabled. + + + + + Bulk-deletes multiple messages. + + + The following example gets 250 messages from the channel and deletes them. + + var messages = await textChannel.GetMessagesAsync(250).FlattenAsync(); + await textChannel.DeleteMessagesAsync(messages); + + + + This method attempts to remove the messages specified in bulk. + + Due to the limitation set by Discord, this method can only remove messages that are posted within 14 days! + + + The messages to be bulk-deleted. + The options to be used when sending the request. + + A task that represents the asynchronous bulk-removal operation. + + + + + Bulk-deletes multiple messages. + + + This method attempts to remove the messages specified in bulk. + + Due to the limitation set by Discord, this method can only remove messages that are posted within 14 days! + + + The snowflake identifier of the messages to be bulk-deleted. + The options to be used when sending the request. + + A task that represents the asynchronous bulk-removal operation. + + + + + Modifies this text channel. + + The delegate containing the properties to modify the channel with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + + Creates a webhook in this text channel. + + The name of the webhook. + The avatar of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + webhook. + + + + + Gets a webhook available in this text channel. + + The identifier of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a webhook associated + with the identifier; null if the webhook is not found. + + + + + Gets the webhooks available in this text channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks that is available in this channel. + + + + + Represents a generic voice channel in a guild. + + + + + Gets the bit-rate that the clients in this voice channel are requested to use. + + + An representing the bit-rate (bps) that this voice channel defines and requests the + client(s) to use. + + + + + Gets the max number of users allowed to be connected to this channel at once. + + + An representing the maximum number of users that are allowed to be connected to this + channel at once; null if a limit is not set. + + + + + Modifies this voice channel. + + The properties to modify the channel with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + + Provides properties that are used to reorder an . + + + + + Gets the ID of the channel to apply this position to. + + + A representing the snowflake identifier of this channel. + + + + + Gets the new zero-based position of this channel. + + + An representing the new position of this channel. + + + + Initializes a new instance of the class used to reorder a channel. + Sets the ID of the channel to apply this position to. + Sets the new zero-based position of this channel. + + + + Provides properties that are used to modify an with the specified changes. + + + + + + Gets or sets the topic of the channel. + + + Setting this value to any string other than null or will set the + channel topic or description to the desired value. + + + + + Gets or sets whether this channel should be flagged as NSFW. + + + Setting this value to true will mark the channel as NSFW (Not Safe For Work) and will prompt the + user about its possibly mature nature before they may view the channel; setting this value to false will + remove the NSFW indicator. + + + + + Gets or sets the slow-mode ratelimit in seconds for this channel. + + + Setting this value to anything above zero will require each user to wait X seconds before + sending another message; setting this value to 0 will disable slow-mode for this channel. + + Users with or + will be exempt from slow-mode. + + + Thrown if the value does not fall within [0, 21600]. + + + + Provides properties that are used to modify an with the specified changes. + + + + + Gets or sets the bitrate of the voice connections in this channel. Must be greater than 8000. + + + + + Gets or sets the maximum number of users that can be present in a channel, or null if none. + + + + + A Unicode emoji. + + + + + + + + Gets the Unicode representation of this emote. + + + A string that resolves to . + + + + + Initializes a new class with the provided Unicode. + + The pure UTF-8 encoding of an emoji. + + + + Determines whether the specified emoji is equal to the current one. + + The object to compare with the current object. + + + + + + + A custom image-based emote. + + + + + + + + + + + Gets whether this emote is animated. + + + A boolean that determines whether or not this emote is an animated one. + + + + + + + + Gets the image URL of this emote. + + + A string that points to the URL of this emote. + + + + + Determines whether the specified emote is equal to the current emote. + + The object to compare with the current object. + + + + + + Parses an from its raw format. + The raw encoding of an emote (e.g. <:dab:277855270321782784>). + An emote. + Invalid emote format. + + + Tries to parse an from its raw format. + The raw encoding of an emote; for example, <:dab:277855270321782784>. + An emote. + + + + Returns the raw representation of the emote. + + + A string representing the raw presentation of the emote (e.g. <:thonkang:282745590985523200>). + + + + + Provides properties that are used to modify an with the specified changes. + + + + + + Gets or sets the name of the . + + + + + Gets or sets the roles that can access this . + + + + + An image-based emote that is attached to a guild. + + + + + Gets whether this emoji is managed by an integration. + + + A boolean that determines whether or not this emote is managed by a Twitch integration. + + + + + Gets whether this emoji must be wrapped in colons. + + + A boolean that determines whether or not this emote requires the use of colons in chat to be used. + + + + + Gets the roles that are allowed to use this emoji. + + + A read-only list containing snowflake identifiers for roles that are allowed to use this emoji. + + + + + Gets the user ID associated with the creation of this emoji. + + + An snowflake identifier representing the user who created this emoji; + null if unknown. + + + + + Gets the raw representation of the emote. + + + A string representing the raw presentation of the emote (e.g. <:thonkang:282745590985523200>). + + + + + Represents a general container for any type of emote in a message. + + + + + Gets the display name or Unicode representation of this emote. + + + A string representing the display name or the Unicode representation (e.g. 🤔) of this emote. + + + + + Stores the gateway information related to the current bot. + + + + + Gets the WSS URL that can be used for connecting to the gateway. + + + + + Gets the recommended number of shards to use when connecting. + + + + + Gets the that contains the information + about the current session start limit. + + + + + Stores the information related to the gateway identify request. + + + + + Gets the total number of session starts the current user is allowed. + + + The maximum amount of session starts the current user is allowed. + + + + + Gets the remaining number of session starts the current user is allowed. + + + The remaining amount of session starts the current user is allowed. + + + + + Gets the number of milliseconds after which the limit resets. + + + The milliseconds until the limit resets back to the . + + + + + Gets the maximum concurrent identify requests in a time window. + + + The maximum concurrent identify requests in a time window, + limited to the same rate limit key. + + + + + Specifies the default message notification behavior the guild uses. + + + + + By default, all messages will trigger notifications. + + + + + By default, only mentions will trigger notifications. + + + + No messages will be scanned. + + + Scans messages from all guild members that do not have a role. + Recommented option for servers that use roles for trusted membership. + + + Scan messages sent by all guild members. + + + + Provides properties that are used to modify the widget of an with the specified changes. + + + + + Sets whether the widget should be enabled. + + + + + Sets the channel that the invite should place its users in, if not null. + + + + + Sets the channel the invite should place its users in, if not null. + + + + + Provides properties used to modify an with the specified changes. + + + + + Gets or sets the behavior when an integration subscription lapses. + + + + + Gets or sets the period (in seconds) where the integration will ignore lapsed subscriptions. + + + + + Gets or sets whether emoticons should be synced for this integration. + + + + + Provides properties that are used to modify an with the specified changes. + + + + + + Gets or sets the name of the guild. Must be within 100 characters. + + + + + Gets or sets the region for the guild's voice connections. + + + + + Gets or sets the ID of the region for the guild's voice connections. + + + + + Gets or sets the verification level new users need to achieve before speaking. + + + + + Gets or sets the default message notification state for the guild. + + + + + Gets or sets how many seconds before a user is sent to AFK. This value MUST be one of: (60, 300, 900, + 1800, 3600). + + + + + Gets or sets the icon of the guild. + + + + + Gets or sets the banner of the guild. + + + + + Gets or sets the guild's splash image. + + + The guild must be partnered for this value to have any effect. + + + + + Gets or sets the where AFK users should be sent. + + + + + Gets or sets the ID of the where AFK users should be sent. + + + + + Gets or sets the where system messages should be sent. + + + + + Gets or sets the ID of the where system messages should be sent. + + + + + Gets or sets the owner of this guild. + + + + + Gets or sets the ID of the owner of this guild. + + + + + Gets or sets the explicit content filter level of this guild. + + + + + Gets or sets the flags that DISABLE types of system channel messages. + + + These flags are inverted. Setting a flag will disable that system channel message from being sent. + A value of will allow all system channel message types to be sent, + given that the has also been set. + A value of will deny guild boost messages from being sent, and allow all + other types of messages. + Refer to the extension methods and + to check if these system channel message types + are enabled, without the need to manipulate the logic of the flag. + + + + + Gets or sets the preferred locale of the guild in IETF BCP 47 language tag format. + + + This property takes precedence over . + When it is set, the value of + will not be used. + + + + + Gets or sets the preferred locale of the guild. + + + The property takes precedence + over this property. When is set, + the value of will be unused. + + + + + Provides properties that are used to modify the widget of an with the specified changes. + + + + + Sets whether the widget should be enabled. + + + + + Sets the channel that the invite should place its users in, if not . + + + + + Sets the channel that the invite should place its users in, if not . + + + + + Represents a generic ban object. + + + + + Gets the banned user. + + + A user that was banned. + + + + + Gets the reason why the user is banned if specified. + + + A string containing the reason behind the ban; null if none is specified. + + + + + Represents a generic guild/server. + + + + + Gets the name of this guild. + + + A string containing the name of this guild. + + + + + Gets the amount of time (in seconds) a user must be inactive in a voice channel for until they are + automatically moved to the AFK voice channel. + + + An representing the amount of time in seconds for a user to be marked as inactive + and moved into the AFK voice channel. + + + + + Gets a value that indicates whether this guild is embeddable (i.e. can use widget). + + + if this guild has a widget enabled; otherwise . + + + + + Gets a value that indicates whether this guild has the widget enabled. + + + if this guild has a widget enabled; otherwise . + + + + + Gets the default message notifications for users who haven't explicitly set their notification settings. + + + + + Gets the level of Multi-Factor Authentication requirements a user must fulfill before being allowed to + perform administrative actions in this guild. + + + The level of MFA requirement. + + + + + Gets the level of requirements a user must fulfill before being allowed to post messages in this guild. + + + The level of requirements. + + + + + Gets the level of content filtering applied to user's content in a Guild. + + + The level of explicit content filtering. + + + + + Gets the ID of this guild's icon. + + + An identifier for the splash image; if none is set. + + + + + Gets the URL of this guild's icon. + + + A URL pointing to the guild's icon; if none is set. + + + + + Gets the ID of this guild's splash image. + + + An identifier for the splash image; if none is set. + + + + + Gets the URL of this guild's splash image. + + + A URL pointing to the guild's splash image; if none is set. + + + + + Gets the ID of this guild's discovery splash image. + + + An identifier for the discovery splash image; if none is set. + + + + + Gets the URL of this guild's discovery splash image. + + + A URL pointing to the guild's discovery splash image; if none is set. + + + + + Determines if this guild is currently connected and ready to be used. + + + + This property only applies to a WebSocket-based client. + + This boolean is used to determine if the guild is currently connected to the WebSocket and is ready to be used/accessed. + + + true if this guild is currently connected and ready to be used; otherwise . + + + + + Gets the ID of the AFK voice channel for this guild. + + + A representing the snowflake identifier of the AFK voice channel; if + none is set. + + + + + Gets the ID of the default channel for this guild. + + + This property retrieves the snowflake identifier of the first viewable text channel for this guild. + + This channel does not guarantee the user can send message to it, as it only looks for the first viewable + text channel. + + + + A representing the snowflake identifier of the default text channel; 0 if + none can be found. + + + + + Gets the ID of the widget embed channel of this guild. + + + A representing the snowflake identifier of the embedded channel found within the + widget settings of this guild; if none is set. + + + + + Gets the ID of the channel assigned to the widget of this guild. + + + A representing the snowflake identifier of the channel assigned to the widget found + within the widget settings of this guild; if none is set. + + + + + Gets the ID of the channel where randomized welcome messages are sent. + + + A representing the snowflake identifier of the system channel where randomized + welcome messages are sent; if none is set. + + + + + Gets the ID of the channel with the rules. + + + A representing the snowflake identifier of the channel that contains the rules; + if none is set. + + + + + Gets the ID of the channel where admins and moderators of Community guilds receive notices from Discord. + + + A representing the snowflake identifier of the channel where admins and moderators + of Community guilds receive notices from Discord; if none is set. + + + + + Gets the ID of the user that owns this guild. + + + A representing the snowflake identifier of the user that owns this guild. + + + + + Gets the application ID of the guild creator if it is bot-created. + + + A representing the snowflake identifier of the application ID that created this guild, or if it was not bot-created. + + + + + Gets the ID of the region hosting this guild's voice channels. + + + A string containing the identifier for the voice region that this guild uses (e.g. eu-central). + + + + + Gets the currently associated with this guild. + + + An currently associated with this guild. + + + + + Gets the built-in role containing all users in this guild. + + + A role object that represents an @everyone role in this guild. + + + + + Gets a collection of all custom emotes for this guild. + + + A read-only collection of all custom emotes for this guild. + + + + + Gets a collection of all extra features added to this guild. + + + A read-only collection of enabled features in this guild. + + + + + Gets a collection of all roles in this guild. + + + A read-only collection of roles found within this guild. + + + + + Gets the tier of guild boosting in this guild. + + + The tier of guild boosting in this guild. + + + + + Gets the identifier for this guilds banner image. + + + An identifier for the banner image; if none is set. + + + + + Gets the URL of this guild's banner image. + + + A URL pointing to the guild's banner image; if none is set. + + + + + Gets the code for this guild's vanity invite URL. + + + A string containing the vanity invite code for this guild; if none is set. + + + + + Gets the flags for the types of system channel messages that are disabled. + + + The flags for the types of system channel messages that are disabled. + + + + + Gets the description for the guild. + + + The description for the guild; if none is set. + + + + + Gets the number of premium subscribers of this guild. + + + This is the number of users who have boosted this guild. + + + The number of premium subscribers of this guild; if not available. + + + + + Gets the maximum number of presences for the guild. + + + The maximum number of presences for the guild. + + + + + Gets the maximum number of members for the guild. + + + The maximum number of members for the guild. + + + + + Gets the maximum amount of users in a video channel. + + + The maximum amount of users in a video channel. + + + + + Gets the approximate number of members in this guild. + + + Only available when getting a guild via REST when `with_counts` is true. + + + The approximate number of members in this guild. + + + + + Gets the approximate number of non-offline members in this guild. + + + Only available when getting a guild via REST when `with_counts` is true. + + + The approximate number of non-offline members in this guild. + + + + + Gets the preferred locale of this guild in IETF BCP 47 + language tag format. + + + The preferred locale of the guild in IETF BCP 47 + language tag format. + + + + + Gets the preferred culture of this guild. + + + The preferred culture information of this guild. + + + + + Modifies this guild. + + The delegate containing the properties to modify the guild with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Modifies this guild's embed channel. + + The delegate containing the properties to modify the guild widget with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Modifies this guild's widget. + + The delegate containing the properties to modify the guild widget with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Bulk-modifies the order of channels in this guild. + + The properties used to modify the channel positions with. + The options to be used when sending the request. + + A task that represents the asynchronous reorder operation. + + + + + Bulk-modifies the order of roles in this guild. + + The properties used to modify the role positions with. + The options to be used when sending the request. + + A task that represents the asynchronous reorder operation. + + + + + Leaves this guild. + + + This method will make the currently logged-in user leave the guild. + + If the user is the owner of this guild, use instead. + + + The options to be used when sending the request. + + A task that represents the asynchronous leave operation. + + + + + Gets a collection of all users banned in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + ban objects that this guild currently possesses, with each object containing the user banned and reason + behind the ban. + + + + + Gets a ban object for a banned user. + + The banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + Gets a ban object for a banned user. + + The snowflake identifier for the banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + Bans the user from this guild and optionally prunes their recent messages. + + The user to ban. + The number of days to remove messages from this user for, and this number must be between [0, 7]. + The reason of the ban to be written in the audit log. + The options to be used when sending the request. + is not between 0 to 7. + + A task that represents the asynchronous add operation for the ban. + + + + + Bans the user from this guild and optionally prunes their recent messages. + + The snowflake ID of the user to ban. + The number of days to remove messages from this user for, and this number must be between [0, 7]. + The reason of the ban to be written in the audit log. + The options to be used when sending the request. + is not between 0 to 7. + + A task that represents the asynchronous add operation for the ban. + + + + + Unbans the user if they are currently banned. + + The user to be unbanned. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation for the ban. + + + + + Unbans the user if they are currently banned. + + The snowflake identifier of the user to be unbanned. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation for the ban. + + + + + Gets a collection of all channels in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + generic channels found within this guild. + + + + + Gets a channel in this guild. + + The snowflake identifier for the channel. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the generic channel + associated with the specified ; if none is found. + + + + + Gets a collection of all text channels in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + message channels found within this guild. + + + + + Gets a text channel in this guild. + + The snowflake identifier for the text channel. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel + associated with the specified ; if none is found. + + + + + Gets a collection of all voice channels in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + voice channels found within this guild. + + + + + Gets a collection of all category channels in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + category channels found within this guild. + + + + + Gets a voice channel in this guild. + + The snowflake identifier for the voice channel. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the voice channel associated + with the specified ; if none is found. + + + + + Gets the AFK voice channel in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the voice channel that the + AFK users will be moved to after they have idled for too long; if none is set. + + + + + Gets the system channel where randomized welcome messages are sent in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel where + randomized welcome messages will be sent to; if none is set. + + + + + Gets the first viewable text channel in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the first viewable text + channel in this guild; if none is found. + + + + + Gets the embed channel (i.e. the channel set in the guild's widget settings) in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the embed channel set + within the server's widget settings; if none is set. + + + + + Gets the widget channel (i.e. the channel set in the guild's widget settings) in this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the widget channel set + within the server's widget settings; if none is set. + + + + + Gets the text channel where Community guilds can display rules and/or guidelines. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel + where Community guilds can display rules and/or guidelines; if none is set. + + + + + Gets the text channel channel where admins and moderators of Community guilds receive notices from Discord. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel channel where + admins and moderators of Community guilds receive notices from Discord; if none is set. + + + + + Creates a new text channel in this guild. + + + The following example creates a new text channel under an existing category named Wumpus with a set topic. + + + The new name for the text channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + text channel. + + + + + Creates a new voice channel in this guild. + + The new name for the voice channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + voice channel. + + + + + Creates a new channel category in this guild. + + The new name for the category. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + category channel. + + + + + Gets a collection of all the voice regions this guild can access. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + voice regions the guild can access. + + + + + Gets a collection of all invites in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + invite metadata, each representing information for an invite found within this guild. + + + + + Gets the vanity invite URL of this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the partial metadata of + the vanity invite found within this guild; if none is found. + + + + + Gets a role in this guild. + + The snowflake identifier for the role. + + A role that is associated with the specified ; if none is found. + + + + + Creates a new role with the provided name. + + The new name for the role. + The guild permission that the role should possess. + The color of the role. + Whether the role is separated from others on the sidebar. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + role. + + + + + Creates a new role with the provided name. + + The new name for the role. + The guild permission that the role should possess. + The color of the role. + Whether the role is separated from others on the sidebar. + Whether the role can be mentioned. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + role. + + + + + Adds a user to this guild. + + + This method requires you have an OAuth2 access token for the user, requested with the guilds.join scope, and that the bot have the MANAGE_INVITES permission in the guild. + + The snowflake identifier of the user. + The OAuth2 access token for the user, requested with the guilds.join scope. + The delegate containing the properties to be applied to the user upon being added to the guild. + The options to be used when sending the request. + A guild user associated with the specified ; if the user is already in the guild. + + + + Gets a collection of all users in this guild. + + + This method retrieves all users found within this guild. + + This may return an incomplete collection in the WebSocket implementation due to how Discord does not + send a complete user list for large guilds. + + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users found within this guild. + + + + + Gets a user from this guild. + + + This method retrieves a user found within this guild. + + This may return in the WebSocket implementation due to incomplete user collection in + large guilds. + + + The snowflake identifier of the user. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the guild user + associated with the specified ; if none is found. + + + + + Gets the current user for this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the currently logged-in + user within this guild. + + + + + Gets the owner of this guild. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the owner of this guild. + + + + + Downloads all users for this guild if the current list is incomplete. + + + This method downloads all users found within this guild throught the Gateway and caches them. + + + A task that represents the asynchronous download operation. + + + + + Prunes inactive users. + + + + This method removes all users that have not logged on in the provided number of . + + + If is true, this method will only return the number of users that + would be removed without kicking the users. + + + The number of days required for the users to be kicked. + Whether this prune action is a simulation. + The options to be used when sending the request. + An array of role IDs to be included in the prune of users who do not have any additional roles. + + A task that represents the asynchronous prune operation. The task result contains the number of users to + be or has been removed from this guild. + + + + + Gets a collection of users in this guild that the name or nickname starts with the + provided at . + + + The can not be higher than . + + The partial name or nickname to search. + The maximum number of users to be gotten. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users that the name or nickname starts with the provided at . + + + + + Gets the specified number of audit log entries for this guild. + + The number of audit log entries to fetch. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + The audit log entry ID to get entries before. + The type of actions to filter. + The user ID to filter entries for. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of the requested audit log entries. + + + + + Gets a webhook found within this guild. + + The identifier for the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the webhook with the + specified ; if none is found. + + + + + Gets a collection of all webhook from this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks found within the guild. + + + + + Gets a specific emote from this guild. + + The snowflake identifier for the guild emote. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the emote found with the + specified ; if none is found. + + + + + Creates a new in this guild. + + The name of the guild emote. + The image of the new emote. + The roles to limit the emote usage to. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the created emote. + + + + + Modifies an existing in this guild. + + The emote to be modified. + The delegate containing the properties to modify the emote with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. The task result contains the modified + emote. + + + + + Deletes an existing from this guild. + + The emote to delete. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation. + + + + + Holds information for a guild integration feature. + + + + + Gets the integration ID. + + + An representing the unique identifier value of this integration. + + + + + Gets the integration name. + + + A string containing the name of this integration. + + + + + Gets the integration type (Twitch, YouTube, etc). + + + A string containing the name of the type of integration. + + + + + Gets a value that indicates whether this integration is enabled or not. + + + true if this integration is enabled; otherwise false. + + + + + Gets a value that indicates whether this integration is syncing or not. + + + An integration with syncing enabled will update its "subscribers" on an interval, while one with syncing + disabled will not. A user must manually choose when sync the integration if syncing is disabled. + + + true if this integration is syncing; otherwise false. + + + + + Gets the ID that this integration uses for "subscribers". + + + + + Gets the grace period before expiring "subscribers". + + + + + Gets when this integration was last synced. + + + A containing a date and time of day when the integration was last synced. + + + + + Gets integration account information. + + + + Gets the ID of the account. + A unique identifier of this integration account. + + + Gets the name of the account. + A string containing the name of this integration account. + + + + Gets the name of this guild. + + + + + Gets the icon URL associated with this guild, or null if one is not set. + + + + + Returns true if the current user owns this guild. + + + + + Returns the current user's permissions for this guild. + + + + + Represents a region of which the user connects to when using voice. + + + + + Gets the unique identifier for this voice region. + + + A string that represents the identifier for this voice region (e.g. eu-central). + + + + + Gets the name of this voice region. + + + A string that represents the human-readable name of this voice region (e.g. Central Europe). + + + + + Gets a value that indicates whether or not this voice region is exclusive to partnered servers. + + + true if this voice region is exclusive to VIP accounts; otherwise false. + + + + + Gets a value that indicates whether this voice region is optimal for your client in terms of latency. + + + true if this voice region is the closest to your machine; otherwise false . + + + + + Gets a value that indicates whether this voice region is no longer being maintained. + + + true if this is a deprecated voice region; otherwise false. + + + + + Gets a value that indicates whether this voice region is custom-made for events. + + + true if this is a custom voice region (used for events/etc); otherwise false/ + + + + + Specifies the guild's Multi-Factor Authentication (MFA) level requirement. + + + + + Users have no additional MFA restriction on this guild. + + + + + Users must have MFA enabled on their account to perform administrative actions. + + + + + Specifies the target of the permission. + + + + + The target of the permission is a role. + + + + + The target of the permission is a user. + + + + + Used for guilds that have no guild boosts. + + + + + Used for guilds that have Tier 1 guild boosts. + + + + + Used for guilds that have Tier 2 guild boosts. + + + + + Used for guilds that have Tier 3 guild boosts. + + + + + Deny none of the system channel messages. + This will enable all of the system channel messages. + + + + + Deny the messages that are sent when a user joins the guild. + + + + + Deny the messages that are sent when a user boosts the guild. + + + + + Specifies the verification level the guild uses. + + + + + Users have no additional restrictions on sending messages to this guild. + + + + + Users must have a verified email on their account. + + + + + Users must fulfill the requirements of Low and be registered on Discord for at least 5 minutes. + + + + + Users must fulfill the requirements of Medium and be a member of this guild for at least 10 minutes. + + + + + Users must fulfill the requirements of High and must have a verified phone on their Discord account. + + + + + Represents a Discord application created via the developer portal. + + + + + Gets the name of the application. + + + + + Gets the description of the application. + + + + + Gets the RPC origins of the application. + + + + + Gets the icon URL of the application. + + + + + Gets if the bot is public. + + + + + Gets if the bot requires code grant. + + + + + Gets the team associated with this application if there is one. + + + + + Gets the partial user object containing info on the owner of the application. + + + + + Determines whether the object is deletable or not. + + + + + Deletes this object and all its children. + + The options to be used when sending the request. + + + + Gets the unique identifier for this object. + + + + + An image that will be uploaded to Discord. + + + + + Gets the stream to be uploaded to Discord. + + + + + Create the image with a . + + + The to create the image with. Note that this must be some type of stream + with the contents of a file in it. + + + + + Create the image from a file path. + + + This file path is NOT validated and is passed directly into a + . + + The path to the file. + + is a zero-length string, contains only white space, or contains one or more invalid + characters as defined by . + + is null. + + The specified path, file name, or both exceed the system-defined maximum length. For example, on + Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 + characters. + + is in an invalid format. + + The specified is invalid, (for example, it is on an unmapped drive). + + + specified a directory.-or- The caller does not have the required permission. + + The file specified in was not found. + + An I/O error occurred while opening the file. + + + + + + + Specifies the type of format the image should return in. + + + + + Use automatically detected format. + + + + + Use Google's WebP image format. + + + + + Use PNG. + + + + + Use JPEG. + + + + + Use GIF. + + + + + Determines whether the object is mentionable or not. + + + + + Returns a special string used to mention this object. + + + A string that is recognized by Discord as a mention (e.g. <@168693960628371456>). + + + + + Represents a for making slash commands. + + + + + The name of this option. + + + + + The description of this option. + + + + + The type of this option. + + + + + The first required option for the user to complete. only one option can be default. + + + + + if this option is required for this command, otherwise . + + + + + choices for string and int types for the user to pick from. + + + + + If the option is a subcommand or subcommand group type, this nested options will be the parameters. + + + + + Represents a choice for a . This class is used when making new commands. + + + + + The name of this choice. + + + + + The value of this choice. + + + + + The option type of the Slash command parameter, See the discord docs. + + + + + A sub command. + + + + + A group of sub commands. + + + + + A of text. + + + + + An . + + + + + A . + + + + + A . + + + + + A . + + + + + A . + + + + + Provides properties that are used to modify a with the specified changes. + + + + + Gets or sets the name of this command. + + + + + Gets or sets the discription of this command. + + + + + Gets or sets the options for this command. + + + + + Whether the command is enabled by default when the app is added to a guild. Default is + + + + + The base command model that belongs to an application. see + + + + + Gets the unique id of the command. + + + + + Gets the unique id of the parent application. + + + + + The name of the command. + + + + + The description of the command. + + + + + If the option is a subcommand or subcommand group type, this nested options will be the parameters. + + + + + Deletes this command + + The options to be used when sending the request. + A task that represents the asynchronous delete operation. + + + + Represents data of an Interaction Command, see . + + + + + The snowflake id of this command. + + + + + The name of this command. + + + + + The params + values from the user. + + + + + Represents a option group for a command, see . + + + + + The name of the parameter. + + + + + The value of the pair. + + This objects type can be any one of the option types in + + + + + + Present if this option is a group or subcommand. + + + + + + The type of this . + + + + + The name of this command option, 1-32 character name. + + + + + The discription of this command option, 1-100 character description. + + + + + The first required option for the user to complete--only one option can be default. + + + + + If the parameter is required or optional, default is . + + + + + Choices for string and int types for the user to pick from. + + + + + If the option is a subcommand or subcommand group type, this nested options will be the parameters. + + + + + Specifies choices for command group. + + + + + 1-100 character choice name. + + + + + value of the choice. + + + + + Represents a discord interaction + + An interaction is the base "thing" that is sent when a user invokes a command, and is the same for Slash Commands + and other future interaction types. see . + + + + + + The id of the interaction. + + + + + The type of this . + + + + + Represents the data sent within this interaction. + + + + + A continuation token for responding to the interaction. + + + + + read-only property, always 1. + + + + + The response type for an . + + + After receiving an interaction, you must respond to acknowledge it. You can choose to respond with a message immediately using + or you can choose to send a deferred response with . If choosing a deferred response, the user will see a loading state for the interaction, + and you'll have up to 15 minutes to edit the original deferred response using Edit Original Interaction Response. + You can read more about Response types Here + + + + + ACK a Ping. + + + + + Respond to an interaction with a message. + + + + + ACK an interaction and edit a response later, the user sees a loading state. + + + + + for components: ACK an interaction and edit the original message later; the user does not see a loading state + + + + + for components: edit the message the component was attached to + + + + + Represents a type of Interaction from discord. + + + + + A ping from discord. + + + + + A sent from discord. + + + + + A sent from discord. + + + + + Represents a Row for child components to live in. + + + + + + + + The child components in this row. + + + + + Represents a Button. + + + + + + + + The of this button, example buttons with each style can be found Here. + + + + + The label of the button, this is the text that is shown. + + + + + A that will be displayed with this button. + + + + + A unique id that will be sent with a . This is how you know what button was pressed. + + + + + A URL for a button. + + + You cannot have a button with a URL and a CustomId. + + + + + Whether this button is disabled or not. + + + + + Represents different styles to use with buttons. You can see an example of the different styles at + + + + + A Blurple button + + + + + A Grey (or gray) button + + + + + A Green button + + + + + A Red button + + + + + A button with a little popup box indicating that this button is a link. + + + + + Represents a builder for creating a . + + + + + The max amount of rows a message can have. + + + + + Gets or sets the Action Rows for this Component Builder. + + + + + Adds a button to the specified row. + + The label text for the newly added button. + The style of this newly added button. + A to be used with this button. + The custom id of the newly added button. + A URL to be used only if the is a Link. + Whether or not the newly created button is disabled. + The row the button should be placed on. + The current builder. + + + + Adds a button to the first row. + + The button to add to the first row. + The current builder. + + + + Adds a button to the specified row. + + The button to add. + The row to add the button. + The current builder. + + + + Builds this builder into a used to send your components. + + A that can be sent with + + + + Represents a class used to build Action rows. + + + + + The max amount of child components this row can hold. + + + + + Gets or sets the components inside this row. + + + + + Adds a list of components to the current row. + + The list of components to add. + The current builder. + + + + Adds a component at the end of the current row. + + The component to add. + The current builder. + + + + Builds the current builder to a that can be used within a + + A that can be used within a + cannot be null. + There must be at least 1 component in a row. + + + + Represents a class used to build 's. + + + + + The max length of a . + + + + + The max length of a . + + + + + Gets or sets the label of the current button. + + + + + Gets or sets the custom id of the current button. + + + + + Gets or sets the of the current button. + + + + + Gets or sets the of the current button. + + + + + Gets or sets the url of the current button. + + + + + Gets or sets whether the current button is disabled. + + + + + Creates a button with the style. + + The label to use on the newly created link button. + The url for this link button to go to. + A builder with the newly created button. + + + + Creates a button with the style. + + The label for this danger button. + The custom id for this danger button. + A builder with the newly created button. + + + + Creates a button with the style. + + The label for this primary button. + The custom id for this primary button. + A builder with the newly created button. + + + + Creates a button with the style. + + The label for this secondary button. + The custom id for this secondary button. + A builder with the newly created button. + + + + Creates a button with the style. + + The label for this success button. + The custom id for this success button. + A builder with the newly created button. + + + + Sets the current buttons label to the specified text. + + The text for the label + The current builder. + + + + Sets the current buttons style. + + The style for this builders button. + The current builder. + + + + Sets the current buttons emote. + + The emote to use for the current button. + The current builder. + + + + Sets the current buttons url. + + The url to use for the current button. + The current builder. + + + + Sets the custom id of the current button. + + The id to use for the current button. + The current builder. + + + + Sets whether the current button is disabled. + + Whether the current button is disabled or not. + The current builder. + + + + Builds this builder into a to be used in a . + + A to be used in a . + A button cannot contain a URL and a CustomId. + A button must have an Emote or a label. + + + + Represents a type of a component + + + + + A container for other components + + + + + A clickable button + + + + + The of this Message Component. + + + + + Represents a component object used to send components with messages. + + + + + The components to be used in a message. + + + + + Returns a empty . + + + + + A class used to build slash commands. + + + + + Returns the maximun length a commands name allowed by Discord + + + + + Returns the maximum length of a commands description allowed by Discord. + + + + + Returns the maximum count of command options allowed by Discord + + + + + The name of this slash command. + + + + + A 1-100 length description of this slash command + + + + + Gets or sets the options for this command. + + + + + Sets the description of the current command. + + The description of this command. + The current builder. + + + + Adds an option to the current slash command. + + The name of the option to add. + The type of this option. + The description of this option. + If this option is required for this command. + If this option is the default option. + The options of the option to add. + The choices of this option. + The current builder. + + + + Adds an option to the current slash command. + + The name of the option to add. + The type of this option. + The description of this option. + If this option is required for this command. + If this option is the default option. + The choices of this option. + The current builder. + + + + Adds an option to the current slash command. + + The name of the option to add. + The type of this option. + The sescription of this option. + The current builder. + + + + Adds an option to this slash command. + + The option to add. + The current builder. + + + + Adds a collection of options to the current slash command. + + The collection of options to add. + The current builder. + + + + Represents a class used to build options for the . + + + + + The max length of a choice's name allowed by Discord. + + + + + The maximum number of choices allowed by Discord. + + + + + The name of this option. + + + + + The description of this option. + + + + + The type of this option. + + + + + The first required option for the user to complete. only one option can be default. + + + + + if this option is required for this command, otherwise . + + + + + choices for string and int types for the user to pick from. + + + + + If the option is a subcommand or subcommand group type, this nested options will be the parameters. + + + + + Builds the current option. + + The built version of this option. + + + + Adds a sub option to the current option. + + The sub option to add. + The current builder. + + + + Adds a choice to the current option. + + The name of the choice. + The value of the choice. + The current builder. + + + + Adds a choice to the current option. + + The name of the choice. + The value of the choice. + The current builder. + + + + Sets the current builders name. + + The name to set the current option builder. + The current builder. + + + + Sets the current builders description. + + The description to set. + The current builder. + + + + Sets the current builders required field. + + The value to set. + The current builder. + + + + Sets the current builders default field. + + The value to set. + The current builder. + + + + Sets the current type of this builder. + + The type to set. + The current builder. + + + + A class used to create slash commands. + + + + + The name of this command. + + + + + The discription of this command. + + + + + Gets or sets the options for this command. + + + + + Whether the command is enabled by default when the app is added to a guild. Default is + + + + + Represents a generic invite object. + + + + + Gets the unique identifier for this invite. + + + A string containing the invite code (e.g. FTqNnyS). + + + + + Gets the URL used to accept this invite using . + + + A string containing the full invite URL (e.g. https://discord.gg/FTqNnyS). + + + + + Gets the channel this invite is linked to. + + + A generic channel that the invite points to. + + + + + Gets the type of the channel this invite is linked to. + + + + + Gets the ID of the channel this invite is linked to. + + + An representing the channel snowflake identifier that the invite points to. + + + + + Gets the name of the channel this invite is linked to. + + + A string containing the name of the channel that the invite points to. + + + + + Gets the guild this invite is linked to. + + + A guild object representing the guild that the invite points to. + + + + + Gets the ID of the guild this invite is linked to. + + + An representing the guild snowflake identifier that the invite points to. + + + + + Gets the name of the guild this invite is linked to. + + + A string containing the name of the guild that the invite points to. + + + + + Gets the approximated count of online members in the guild. + + + An representing the approximated online member count of the guild that the + invite points to; null if one cannot be obtained. + + + + + Gets the approximated count of total members in the guild. + + + An representing the approximated total member count of the guild that the + invite points to; null if one cannot be obtained. + + + + + Represents additional information regarding the generic invite object. + + + + + Gets the user that created this invite. + + + A user that created this invite. + + + + + Gets a value that indicates whether the invite has been revoked. + + + true if this invite was revoked; otherwise false. + + + + + Gets a value that indicates whether the invite is a temporary one. + + + true if users accepting this invite will be removed from the guild when they log off; otherwise + false. + + + + + Gets the time (in seconds) until the invite expires. + + + An representing the time in seconds until this invite expires; null if this + invite never expires. + + + + + Gets the max number of uses this invite may have. + + + An representing the number of uses this invite may be accepted until it is removed + from the guild; null if none is set. + + + + + Gets the number of times this invite has been used. + + + An representing the number of times this invite has been used. + + + + + Gets when this invite was created. + + + A representing the time of which the invite was first created. + + + + + The invite whose target user type is not defined. + + + + + The invite is for a Go Live stream. + + + + Represents a Discord snowflake entity. + + + + Gets when the snowflake was created. + + + A representing when the entity was first created. + + + + + Defines whether the object is updateable or not. + + + + + Updates this object's properties with its current state. + + The options to be used when sending the request. + + + + Defines which mentions and types of mentions that will notify users from the message content. + + + + + Gets a value which indicates that no mentions in the message content should notify users. + + + + + Gets a value which indicates that all mentions in the message content should notify users. + + + + + Gets or sets the type of mentions that will be parsed from the message content. + + + The flag is mutually exclusive with the + property, and the flag is mutually exclusive with the + property. + If null, only the ids specified in and will be mentioned. + + + + + Gets or sets the list of all role ids that will be mentioned. + This property is mutually exclusive with the + flag of the property. If the flag is set, the value of this property + must be null or empty. + + + + + Gets or sets the list of all user ids that will be mentioned. + This property is mutually exclusive with the + flag of the property. If the flag is set, the value of this property + must be null or empty. + + + + + Gets or sets whether to mention the author of the message you are replying to or not. + + + Specifically for inline replies. + + + + + Initializes a new instance of the class. + + + The types of mentions to parse from the message content. + If null, only the ids specified in and will be mentioned. + + + + + Specifies the type of mentions that will be notified from the message content. + + + + + No flag is set. + + + This flag is not used to control mentions. + + It will always be present and does not mean mentions will not be allowed. + + + + + + Controls role mentions. + + + + + Controls user mentions. + + + + + Controls @everyone and @here mentions. + + + + + Represents an embed object seen in an . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the total length of all embed properties. + + + + + Gets the title of the embed. + + + + + A author field of an . + + + + + Gets the name of the author field. + + + + + Gets the URL of the author field. + + + + + Gets the icon URL of the author field. + + + + + Gets the proxified icon URL of the author field. + + + + + Gets the name of the author field. + + + + + + + + Represents a builder class for creating a . + + + + + Returns the maximum number of fields allowed by Discord. + + + + + Returns the maximum length of title allowed by Discord. + + + + + Returns the maximum length of description allowed by Discord. + + + + + Returns the maximum length of total characters allowed by Discord. + + + + Initializes a new class. + + + Gets or sets the title of an . + Title length exceeds . + + The title of the embed. + + + Gets or sets the description of an . + Description length exceeds . + The description of the embed. + + + Gets or sets the URL of an . + Url is not a well-formed . + The URL of the embed. + + + Gets or sets the thumbnail URL of an . + Url is not a well-formed . + The thumbnail URL of the embed. + + + Gets or sets the image URL of an . + Url is not a well-formed . + The image URL of the embed. + + + Gets or sets the list of of an . + An embed builder's fields collection is set to + null. + Description length exceeds . + + The list of existing . + + + + Gets or sets the timestamp of an . + + + The timestamp of the embed, or null if none is set. + + + + + Gets or sets the sidebar color of an . + + + The color of the embed, or null if none is set. + + + + + Gets or sets the of an . + + + The author field builder of the embed, or null if none is set. + + + + + Gets or sets the of an . + + + The footer field builder of the embed, or null if none is set. + + + + + Gets the total length of all embed properties. + + + The combined length of , , , + , , and . + + + + + Sets the title of an . + + The title to be set. + + The current builder. + + + + + Sets the description of an . + + The description to be set. + + The current builder. + + + + + Sets the URL of an . + + The URL to be set. + + The current builder. + + + + + Sets the thumbnail URL of an . + + The thumbnail URL to be set. + + The current builder. + + + + + Sets the image URL of an . + + The image URL to be set. + + The current builder. + + + + + Sets the timestamp of an to the current time. + + + The current builder. + + + + + Sets the timestamp of an . + + The timestamp to be set. + + The current builder. + + + + + Sets the sidebar color of an . + + The color to be set. + + The current builder. + + + + + Sets the of an . + + The author builder class containing the author field properties. + + The current builder. + + + + + Sets the author field of an with the provided properties. + + The delegate containing the author field properties. + + The current builder. + + + + + Sets the author field of an with the provided name, icon URL, and URL. + + The title of the author field. + The icon URL of the author field. + The URL of the author field. + + The current builder. + + + + + Sets the of an . + + The footer builder class containing the footer field properties. + + The current builder. + + + + + Sets the footer field of an with the provided properties. + + The delegate containing the footer field properties. + + The current builder. + + + + + Sets the footer field of an with the provided name, icon URL. + + The title of the footer field. + The icon URL of the footer field. + + The current builder. + + + + + Adds an field with the provided name and value. + + The title of the field. + The value of the field. + Indicates whether the field is in-line or not. + + The current builder. + + + + + Adds a field with the provided to an + . + + The field builder class containing the field properties. + Field count exceeds . + + The current builder. + + + + + Adds an field with the provided properties. + + The delegate containing the field properties. + + The current builder. + + + + + Builds the into a Rich Embed ready to be sent. + + + The built embed object. + + Total embed length exceeds . + + + + Represents a builder class for an embed field. + + + + + Gets the maximum field length for name allowed by Discord. + + + + + Gets the maximum field length for value allowed by Discord. + + + + + Gets or sets the field name. + + + Field name is null, empty or entirely whitespace. + - or - + Field name length exceeds . + + + The name of the field. + + + + + Gets or sets the field value. + + + Field value is null, empty or entirely whitespace. + - or - + Field value length exceeds . + + + The value of the field. + + + + + Gets or sets a value that indicates whether the field should be in-line with each other. + + + + + Sets the field name. + + The name to set the field name to. + + The current builder. + + + + + Sets the field value. + + The value to set the field value to. + + The current builder. + + + + + Determines whether the field should be in-line with each other. + + + The current builder. + + + + + Builds the field builder into a class. + + + The current builder. + + + or is null, empty or entirely whitespace. + - or - + or exceeds the maximum length allowed by Discord. + + + + + Represents a builder class for a author field. + + + + + Gets the maximum author name length allowed by Discord. + + + + + Gets or sets the author name. + + + Author name length is longer than . + + + The author name. + + + + + Gets or sets the URL of the author field. + + Url is not a well-formed . + + The URL of the author field. + + + + + Gets or sets the icon URL of the author field. + + Url is not a well-formed . + + The icon URL of the author field. + + + + + Sets the name of the author field. + + The name of the author field. + + The current builder. + + + + + Sets the URL of the author field. + + The URL of the author field. + + The current builder. + + + + + Sets the icon URL of the author field. + + The icon URL of the author field. + + The current builder. + + + + + Builds the author field to be used. + + + Author name length is longer than . + - or - + is not a well-formed . + - or - + is not a well-formed . + + + The built author field. + + + + + Represents a builder class for an embed footer. + + + + + Gets the maximum footer length allowed by Discord. + + + + + Gets or sets the footer text. + + + Author name length is longer than . + + + The footer text. + + + + + Gets or sets the icon URL of the footer field. + + Url is not a well-formed . + + The icon URL of the footer field. + + + + + Sets the name of the footer field. + + The text of the footer field. + + The current builder. + + + + + Sets the icon URL of the footer field. + + The icon URL of the footer field. + + The current builder. + + + + + Builds the footer field to be used. + + + + length is longer than . + - or - + is not a well-formed . + + + A built footer field. + + + + + A field for an . + + + + + Gets the name of the field. + + + + + Gets the value of the field. + + + + + Gets a value that indicates whether the field should be in-line with each other. + + + + + Gets the name of the field. + + + A string that resolves to . + + + + A footer field for an . + + + + Gets the text of the footer field. + + + A string containing the text of the footer field. + + + + + Gets the URL of the footer icon. + + + A string containing the URL of the footer icon. + + + + + Gets the proxied URL of the footer icon link. + + + A string containing the proxied URL of the footer icon. + + + + + Gets the text of the footer field. + + + A string that resolves to . + + + + An image for an . + + + + Gets the URL of the image. + + + A string containing the URL of the image. + + + + + Gets a proxied URL of this image. + + + A string containing the proxied URL of this image. + + + + + Gets the height of this image. + + + A representing the height of this image if it can be retrieved; otherwise + null. + + + + + Gets the width of this image. + + + A representing the width of this image if it can be retrieved; otherwise + null. + + + + + Gets the URL of the thumbnail. + + + A string that resolves to . + + + + A provider field for an . + + + + Gets the name of the provider. + + + A string representing the name of the provider. + + + + + Gets the URL of the provider. + + + A string representing the link to the provider. + + + + + Gets the name of the provider. + + + A string that resolves to . + + + + A thumbnail featured in an . + + + + Gets the URL of the thumbnail. + + + A string containing the URL of the thumbnail. + + + + + Gets a proxied URL of this thumbnail. + + + A string containing the proxied URL of this thumbnail. + + + + + Gets the height of this thumbnail. + + + A representing the height of this thumbnail if it can be retrieved; otherwise + null. + + + + + Gets the width of this thumbnail. + + + A representing the width of this thumbnail if it can be retrieved; otherwise + null. + + + + + Gets the URL of the thumbnail. + + + A string that resolves to . + + + + + Specifies the type of embed. + + + + + An unknown embed type. + + + + + A rich embed type. + + + + + A link embed type. + + + + + A video embed type. + + + + + An image embed type. + + + + + A GIFV embed type. + + + + + An article embed type. + + + + + A tweet embed type. + + + + + A HTML embed type. + + + + + A video featured in an . + + + + + Gets the URL of the video. + + + A string containing the URL of the image. + + + + + Gets the height of the video. + + + A representing the height of this video if it can be retrieved; otherwise + null. + + + + + Gets the weight of the video. + + + A representing the width of this video if it can be retrieved; otherwise + null. + + + + + Gets the URL of the video. + + + A string that resolves to . + + + + + Represents a message attachment found in a . + + + + + Gets the ID of this attachment. + + + A snowflake ID associated with this attachment. + + + + + Gets the filename of this attachment. + + + A string containing the full filename of this attachment (e.g. textFile.txt). + + + + + Gets the URL of this attachment. + + + A string containing the URL of this attachment. + + + + + Gets a proxied URL of this attachment. + + + A string containing the proxied URL of this attachment. + + + + + Gets the file size of this attachment. + + + The size of this attachment in bytes. + + + + + Gets the height of this attachment. + + + The height of this attachment if it is a picture; otherwise null. + + + + + Gets the width of this attachment. + + + The width of this attachment if it is a picture; otherwise null. + + + + + Represents a Discord embed object. + + + + + Gets the title URL of this embed. + + + A string containing the URL set in a title of the embed. + + + + + Gets the title of this embed. + + + The title of the embed. + + + + + Gets the description of this embed. + + + The description field of the embed. + + + + + Gets the type of this embed. + + + The type of the embed. + + + + + Gets the timestamp of this embed. + + + A based on the timestamp present at the bottom left of the embed, or + null if none is set. + + + + + Gets the color of this embed. + + + The color of the embed present on the side of the embed, or null if none is set. + + + + + Gets the image of this embed. + + + The image of the embed, or null if none is set. + + + + + Gets the video of this embed. + + + The video of the embed, or null if none is set. + + + + + Gets the author field of this embed. + + + The author field of the embed, or null if none is set. + + + + + Gets the footer field of this embed. + + + The author field of the embed, or null if none is set. + + + + + Gets the provider of this embed. + + + The source of the embed, or null if none is set. + + + + + Gets the thumbnail featured in this embed. + + + The thumbnail featured in the embed, or null if none is set. + + + + + Gets the fields of the embed. + + + An array of the fields of the embed. + + + + + Represents a message object. + + + + + Gets the type of this system message. + + + + + Gets the source type of this message. + + + + + Gets the value that indicates whether this message was meant to be read-aloud by Discord. + + + true if this message was sent as a text-to-speech message; otherwise false. + + + + + Gets the value that indicates whether this message is pinned. + + + true if this message was added to its channel's pinned messages; otherwise false. + + + + + Gets the value that indicates whether or not this message's embeds are suppressed. + + + true if the embeds in this message have been suppressed (made invisible); otherwise false. + + + + + Gets the value that indicates whether this message mentioned everyone. + + + true if this message mentioned everyone; otherwise false. + + + + + Gets the content for this message. + + + A string that contains the body of the message; note that this field may be empty if there is an embed. + + + + + Gets the time this message was sent. + + + Time of when the message was sent. + + + + + Gets the time of this message's last edit. + + + Time of when the message was last edited; null if the message is never edited. + + + + + Gets the source channel of the message. + + + + + Gets the author of this message. + + + + + Gets all attachments included in this message. + + + This property gets a read-only collection of attachments associated with this message. Depending on the + user's end-client, a sent message may contain one or more attachments. For example, mobile users may + attach more than one file in their message, while the desktop client only allows for one. + + + A read-only collection of attachments. + + + + + Gets all embeds included in this message. + + + + This property gets a read-only collection of embeds associated with this message. Depending on the + message, a sent message may contain one or more embeds. This is usually true when multiple link previews + are generated; however, only one can be featured. + + A read-only collection of embed objects. + + + + + Gets all tags included in this message's content. + + + + + Gets the IDs of channels mentioned in this message. + + + A read-only collection of channel IDs. + + + + + Gets the IDs of roles mentioned in this message. + + + A read-only collection of role IDs. + + + + + Gets the IDs of users mentioned in this message. + + + A read-only collection of user IDs. + + + + + Gets the activity associated with a message. + + + Sent with Rich Presence-related chat embeds. This often refers to activity that requires end-user's + interaction, such as a Spotify Invite activity. + + + A message's activity, if any is associated. + + + + + Gets the application associated with a message. + + + Sent with Rich-Presence-related chat embeds. + + + A message's application, if any is associated. + + + + + Gets the reference to the original message if it is a crosspost, channel follow add, pin, or reply message. + + + Sent with cross-posted messages, meaning they were published from news channels + and received by subscriber channels, channel follow adds, pins, and message replies. + + + A message's reference, if any is associated. + + + + + Gets all reactions included in this message. + + + + + The 's attached to this message + + + + + Adds a reaction to this message. + + + The following example adds the reaction, 💕, to the message. + + await msg.AddReactionAsync(new Emoji("\U0001f495")); + + + The emoji used to react to this message. + The options to be used when sending the request. + + A task that represents the asynchronous operation for adding a reaction to this message. + + + + + + Removes a reaction from message. + + + The following example removes the reaction, 💕, added by the message author from the message. + + await msg.RemoveReactionAsync(new Emoji("\U0001f495"), msg.Author); + + + The emoji used to react to this message. + The user that added the emoji. + The options to be used when sending the request. + + A task that represents the asynchronous operation for removing a reaction to this message. + + + + + + Removes a reaction from message. + + + The following example removes the reaction, 💕, added by the user with ID 84291986575613952 from the message. + + await msg.RemoveReactionAsync(new Emoji("\U0001f495"), 84291986575613952); + + + The emoji used to react to this message. + The ID of the user that added the emoji. + The options to be used when sending the request. + + A task that represents the asynchronous operation for removing a reaction to this message. + + + + + + Removes all reactions from this message. + + The options to be used when sending the request. + + A task that represents the asynchronous removal operation. + + + + + Removes all reactions with a specific emoji from this message. + + The emoji used to react to this message. + The options to be used when sending the request. + + A task that represents the asynchronous removal operation. + + + + + Gets all users that reacted to a message with a given emote. + + + + The returned collection is an asynchronous enumerable object; one must call + to access the users as a + collection. + + + Do not fetch too many users at once! This may cause unwanted preemptive rate limit or even actual + rate limit, causing your bot to freeze! + + This method will attempt to fetch the number of reactions specified under . + The library will attempt to split up the requests according to your and + . In other words, should the user request 500 reactions, + and the constant is 100, the request will + be split into 5 individual requests; thus returning 5 individual asynchronous responses, hence the need + of flattening. + + + The following example gets the users that have reacted with the emoji 💕 to the message. + + var emoji = new Emoji("\U0001f495"); + var reactedUsers = await message.GetReactionUsersAsync(emoji, 100).FlattenAsync(); + + + The emoji that represents the reaction that you wish to get. + The number of users to request. + The options to be used when sending the request. + + Paged collection of users. + + + + + Represents a generic reaction object. + + + + + The used in the reaction. + + + + + Represents a generic message sent by the system. + + + + + Represents a generic message sent by a user. + + + + + Gets the referenced message if it is a crosspost, channel follow add, pin, or reply message. + + + The referenced message, if any is associated and still exists. + + + + + Modifies this message. + + + This method modifies this message with the specified properties. To see an example of this + method and what properties are available, please refer to . + + + The following example replaces the content of the message with Hello World!. + + await msg.ModifyAsync(x => x.Content = "Hello World!"); + + + A delegate containing the properties to modify the message with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Modifies the suppression of this message. + + + This method modifies whether or not embeds in this message are suppressed (hidden). + + Whether or not embeds in this message should be suppressed. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Adds this message to its channel's pinned messages. + + The options to be used when sending the request. + + A task that represents the asynchronous operation for pinning this message. + + + + + Removes this message from its channel's pinned messages. + + The options to be used when sending the request. + + A task that represents the asynchronous operation for unpinning this message. + + + + + Publishes (crossposts) this message. + + The options to be used when sending the request. + + A task that represents the asynchronous operation for publishing this message. + + + + This call will throw an if attempted in a non-news channel. + + This method will publish (crosspost) the message. Please note, publishing (crossposting), is only available in news channels. + + + + + Transforms this message's text into a human-readable form by resolving its tags. + + Determines how the user tag should be handled. + Determines how the channel tag should be handled. + Determines how the role tag should be handled. + Determines how the @everyone tag should be handled. + Determines how the emoji tag should be handled. + + + + An activity object found in a sent message. + + + + This class refers to an activity object, visually similar to an embed within a message. However, a message + activity is interactive as opposed to a standard static embed. + + For example, a Spotify party invitation counts as a message activity. + + + + + Gets the type of activity of this message. + + + + + Gets the party ID of this activity, if any. + + + + + Gets the snowflake ID of the application. + + + + + Gets the ID of the embed's image asset. + + + + + Gets the application's description. + + + + + Gets the ID of the application's icon. + + + + + Gets the Url of the application's icon. + + + + + Gets the name of the application. + + + + + Properties that are used to modify an with the specified changes. + + + The content of a message can be cleared with if and only if an + is present. + + + + + + Gets or sets the content of the message. + + + This must be less than the constant defined by . + + + + + Gets or sets the embed the message should display. + + + + + Gets or sets the components for this message. + + + + + Contains the IDs sent from a crossposted message or inline reply. + + + + + Gets the Message ID of the original message. + + + + + Gets the Channel ID of the original message. + + + It only will be the default value (zero) if it was instantiated with a in the constructor. + + + + + Gets the Guild ID of the original message. + + + + + Initializes a new instance of the class. + + + The ID of the message that will be referenced. Used to reply to specific messages and the only parameter required for it. + + + The ID of the channel that will be referenced. It will be validated if sent. + + + The ID of the guild that will be referenced. It will be validated if sent. + + + + + Specifies the source of the Discord message. + + + + + The message is sent by the system. + + + + + The message is sent by a user. + + + + + The message is sent by a bot. + + + + + The message is sent by a webhook. + + + + + Specifies the type of message. + + + + + The default message type. + + + + + The message when a recipient is added. + + + + + The message when a recipient is removed. + + + + + The message when a user is called. + + + + + The message when a channel name is changed. + + + + + The message when a channel icon is changed. + + + + + The message when another message is pinned. + + + + + The message when a new member joined. + + + + + The message for when a user boosts a guild. + + + + + The message for when a guild reaches Tier 1 of Nitro boosts. + + + + + The message for when a guild reaches Tier 2 of Nitro boosts. + + + + + The message for when a guild reaches Tier 3 of Nitro boosts. + + + + + The message for when a news channel subscription is added to a text channel. + + + + + The message is an inline reply. + + + Only available in API v8. + + + + + The message is an Application Command + + + Only available in API v8 + + + + + A metadata containing reaction information. + + + + + Gets the number of reactions. + + + An representing the number of this reactions that has been added to this message. + + + + + Gets a value that indicates whether the current user has reacted to this. + + + true if the user has reacted to the message; otherwise false. + + + + + Specifies the handling type the tag should use. + + + + + + + Tag handling is ignored (e.g. <@53905483156684800> -> <@53905483156684800>). + + + + + Removes the tag entirely. + + + + + Resolves to username (e.g. <@53905483156684800> -> @Voltana). + + + + + Resolves to username without mention prefix (e.g. <@53905483156684800> -> Voltana). + + + + + Resolves to username with discriminator value. (e.g. <@53905483156684800> -> @Voltana#8252). + + + + + Resolves to username with discriminator value without mention prefix. (e.g. <@53905483156684800> -> Voltana#8252). + + + + + Sanitizes the tag (e.g. <@53905483156684800> -> <@53905483156684800> (w/ nbsp)). + + + + Specifies the type of Discord tag. + + + The object is an user mention. + + + The object is a channel mention. + + + The object is a role mention. + + + The object is an everyone mention. + + + The object is a here mention. + + + The object is an emoji. + + + + Application command permissions allow you to enable or disable commands for specific users or roles within a guild. + + + + + The id of the role or user. + + + + + The target of this permission. + + + + + to allow, otherwise . + + + + + Creates a new . + + The id you want to target this permission value for. + The type of the targetId parameter. + The value of this permission. + + + + Creates a new targeting . + + The user you want to target this permission value for. + The value of this permission. + + + + Creates a new targeting . + + The role you want to target this permission value for. + The value of this permission. + + + Defines the available permissions for a channel. + + + + Allows creation of instant invites. + + + + + Allows management and editing of channels. + + + + + Allows for the addition of reactions to messages. + + + + + Allows for reading of messages. This flag is obsolete, use instead. + + + + + Allows guild members to view a channel, which includes reading messages in text channels. + + + + + Allows for sending messages in a channel. + + + + + Allows for sending of text-to-speech messages. + + + + + Allows for deletion of other users messages. + + + + + Allows links sent by users with this permission will be auto-embedded. + + + + + Allows for uploading images and files. + + + + + Allows for reading of message history. + + + + + 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. + + + + + Allows the usage of custom emojis from other servers. + + + + + Allows for joining of a voice channel. + + + + + Allows for speaking in a voice channel. + + + + + Allows for muting members in a voice channel. + + + + + Allows for deafening of members in a voice channel. + + + + + Allows for moving of members between voice channels. + + + + + Allows for using voice-activity-detection in a voice channel. + + + + + Allows video streaming in a voice channel. + + + + + Allows management and editing of roles. + + + + + Allows management and editing of webhooks. + + + + Gets a blank that grants no permissions. + A structure that does not contain any set permissions. + + + Gets a that grants all permissions for text channels. + + + Gets a that grants all permissions for voice channels. + + + Gets a that grants all permissions for category channels. + + + Gets a that grants all permissions for direct message channels. + + + Gets a that grants all permissions for group channels. + + + Gets a that grants all permissions for a given channel type. + Unknown channel type. + + + Gets a packed value representing all the permissions in this . + + + If true, a user may create invites. + + + If true, a user may create, delete and modify this channel. + + + If true, a user may add reactions. + + + If true, a user may join channels. + + + If true, a user may view channels. + + + If true, a user may send messages. + + + If true, a user may send text-to-speech messages. + + + If true, a user may delete messages. + + + If true, Discord will auto-embed links sent by this user. + + + If true, a user may send files. + + + If true, a user may read previous messages. + + + If true, a user may mention @everyone. + + + If true, a user may use custom emoji from other guilds. + + + If true, a user may connect to a voice channel. + + + If true, a user may speak in a voice channel. + + + If true, a user may mute users. + + + If true, a user may deafen users. + + + If true, a user may move other users between voice channels. + + + If true, a user may use voice-activity-detection rather than push-to-talk. + + + If true, a user may use priority speaker in a voice channel. + + + If true, a user may stream video in a voice channel. + + + If true, a user may adjust role permissions. This also implictly grants all other permissions. + + + If true, a user may edit the webhooks for this channel. + + + Creates a new with the provided packed value. + + + Creates a new with the provided permissions. + + + Creates a new from this one, changing the provided non-null permissions. + + + + Returned when fetching the permissions for a command in a guild. + + + + + The id of the command. + + + + + The id of the application the command belongs to. + + + + + The id of the guild. + + + + + The permissions for the command in the guild. + + + + Defines the available permissions for a channel. + + + + Allows creation of instant invites. + + + + + Allows kicking members. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows banning members. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows all permissions and bypasses channel permission overwrites. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows management and editing of channels. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows management and editing of the guild. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows for viewing of guild insights + + + + + Allows for the addition of reactions to messages. + + + + + Allows for viewing of audit logs. + + + + + Allows for sending of text-to-speech messages. + + + + + Allows for deletion of other users messages. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows links sent by users with this permission will be auto-embedded. + + + + + Allows for uploading images and files. + + + + + Allows for reading of message history. + + + + + 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. + + + + + Allows the usage of custom emojis from other servers. + + + + + Allows for joining of a voice channel. + + + + + Allows for speaking in a voice channel. + + + + + Allows for muting members in a voice channel. + + + + + Allows for deafening of members in a voice channel. + + + + + Allows for moving of members between voice channels. + + + + + Allows for using voice-activity-detection in a voice channel. + + + + + Allows video streaming in a voice channel. + + + + + Allows for modification of own nickname. + + + + + Allows for modification of other users nicknames. + + + + + Allows management and editing of roles. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows management and editing of webhooks. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + + Allows management and editing of emojis. + + + This permission requires the owner account to use two-factor + authentication when used on a guild that has server-wide 2FA enabled. + + + + Gets a blank that grants no permissions. + + + Gets a that grants all guild permissions for webhook users. + + + Gets a that grants all guild permissions. + + + Gets a packed value representing all the permissions in this . + + + If true, a user may create invites. + + + If true, a user may ban users from the guild. + + + If true, a user may kick users from the guild. + + + If true, a user is granted all permissions, and cannot have them revoked via channel permissions. + + + If true, a user may create, delete and modify channels. + + + If true, a user may adjust guild properties. + + + If true, a user may add reactions. + + + If true, a user may view the audit log. + + + If true, a user may view the guild insights. + + + If True, a user may join channels. + + + If True, a user may view channels. + + + If True, a user may send messages. + + + If true, a user may send text-to-speech messages. + + + If true, a user may delete messages. + + + If true, Discord will auto-embed links sent by this user. + + + If true, a user may send files. + + + If true, a user may read previous messages. + + + If true, a user may mention @everyone. + + + If true, a user may use custom emoji from other guilds. + + + If true, a user may connect to a voice channel. + + + If true, a user may speak in a voice channel. + + + If true, a user may mute users. + + + If true, a user may deafen users. + + + If true, a user may move other users between voice channels. + + + If true, a user may use voice-activity-detection rather than push-to-talk. + + + If True, a user may use priority speaker in a voice channel. + + + If True, a user may stream video in a voice channel. + + + If true, a user may change their own nickname. + + + If true, a user may change the nickname of other users. + + + If true, a user may adjust roles. + + + If true, a user may edit the webhooks for this guild. + + + If true, a user may edit the emojis for this guild. + + + Creates a new with the provided packed value. + + + Creates a new structure with the provided permissions. + + + Creates a new from this one, changing the provided non-null permissions. + + + + Returns a value that indicates if a specific is enabled + in these permissions. + + The permission value to check for. + true if the permission is enabled, false otherwise. + + + + Returns a containing all of the + flags that are enabled. + + A containing flags. Empty if none are enabled. + + + + Represent a permission object. + + + + + Gets the unique identifier for the object this overwrite is targeting. + + + + + Gets the type of object this overwrite is targeting. + + + + + Gets the permissions associated with this overwrite entry. + + + + + Initializes a new with provided target information and modified permissions. + + + + + Represents a container for a series of overwrite permissions. + + + + + Gets a blank that inherits all permissions. + + + + + Gets a that grants all permissions for the given channel. + + Unknown channel type. + + + + Gets a that denies all permissions for the given channel. + + Unknown channel type. + + + + Gets a packed value representing all the allowed permissions in this . + + + + + Gets a packed value representing all the denied permissions in this . + + + + If Allowed, a user may create invites. + + + If Allowed, a user may create, delete and modify this channel. + + + If Allowed, a user may add reactions. + + + If Allowed, a user may join channels. + + + If Allowed, a user may join channels. + + + If Allowed, a user may send messages. + + + If Allowed, a user may send text-to-speech messages. + + + If Allowed, a user may delete messages. + + + If Allowed, Discord will auto-embed links sent by this user. + + + If Allowed, a user may send files. + + + If Allowed, a user may read previous messages. + + + If Allowed, a user may mention @everyone. + + + If Allowed, a user may use custom emoji from other guilds. + + + If Allowed, a user may connect to a voice channel. + + + If Allowed, a user may speak in a voice channel. + + + If Allowed, a user may mute users. + + + If Allowed, a user may deafen users. + + + If Allowed, a user may move other users between voice channels. + + + If Allowed, a user may use voice-activity-detection rather than push-to-talk. + + + If Allowed, a user may use priority speaker in a voice channel. + + + If Allowed, a user may go live in a voice channel. + + + If Allowed, a user may adjust role permissions. This also implicitly grants all other permissions. + + + If True, a user may edit the webhooks for this channel. + + + Creates a new OverwritePermissions with the provided allow and deny packed values. + + + + Initializes a new struct with the provided permissions. + + + + + Initializes a new from the current one, changing the provided + non-null permissions. + + + + + Creates a of all the values that are allowed. + + A of all allowed flags. If none, the list will be empty. + + + + Creates a of all the values that are denied. + + A of all denied flags. If none, the list will be empty. + + + Specifies the permission value. + + + Allows this permission. + + + Denies this permission. + + + Inherits the permission settings. + + + + Represents a color used in Discord. + + + + Gets the default user color value. + + + Gets the teal color value. + A color struct with the hex value of 1ABC9C. + + + Gets the dark teal color value. + A color struct with the hex value of 11806A. + + + Gets the green color value. + A color struct with the hex value of 2ECC71. + + + Gets the dark green color value. + A color struct with the hex value of 1F8B4C. + + + Gets the blue color value. + A color struct with the hex value of 3498DB. + + + Gets the dark blue color value. + A color struct with the hex value of 206694. + + + Gets the purple color value. + A color struct with the hex value of 9B59B6. + + + Gets the dark purple color value. + A color struct with the hex value of 71368A. + + + Gets the magenta color value. + A color struct with the hex value of E91E63. + + + Gets the dark magenta color value. + A color struct with the hex value of AD1457. + + + Gets the gold color value. + A color struct with the hex value of F1C40F. + + + Gets the light orange color value. + A color struct with the hex value of C27C0E. + + + Gets the orange color value. + A color struct with the hex value of E67E22. + + + Gets the dark orange color value. + A color struct with the hex value of A84300. + + + Gets the red color value. + A color struct with the hex value of E74C3C. + + + Gets the dark red color value. + A color struct with the hex value of 992D22. + + + Gets the light grey color value. + A color struct with the hex value of 979C9F. + + + Gets the lighter grey color value. + A color struct with the hex value of 95A5A6. + + + Gets the dark grey color value. + A color struct with the hex value of 607D8B. + + + Gets the darker grey color value. + A color struct with the hex value of 546E7A. + + + Gets the encoded value for this color. + + This value is encoded as an unsigned integer value. The most-significant 8 bits contain the red value, + the middle 8 bits contain the green value, and the least-significant 8 bits contain the blue value. + + + + Gets the red component for this color. + + + Gets the green component for this color. + + + Gets the blue component for this color. + + + + Initializes a struct with the given raw value. + + + The following will create a color that has a hex value of + #607D8B. + + Color darkGrey = new Color(0x607D8B); + + + The raw value of the color (e.g. 0x607D8B). + + + + Initializes a struct with the given RGB bytes. + + + The following will create a color that has a value of + #607D8B. + + Color darkGrey = new Color((byte)0b_01100000, (byte)0b_01111101, (byte)0b_10001011); + + + The byte that represents the red color. + The byte that represents the green color. + The byte that represents the blue color. + + + + Initializes a struct with the given RGB value. + + + The following will create a color that has a value of + #607D8B. + + Color darkGrey = new Color(96, 125, 139); + + + The value that represents the red color. Must be within 0~255. + The value that represents the green color. Must be within 0~255. + The value that represents the blue color. Must be within 0~255. + The argument value is not between 0 to 255. + + + + Initializes a struct with the given RGB float value. + + + The following will create a color that has a value of + #607c8c. + + Color darkGrey = new Color(0.38f, 0.49f, 0.55f); + + + The value that represents the red color. Must be within 0~1. + The value that represents the green color. Must be within 0~1. + The value that represents the blue color. Must be within 0~1. + The argument value is not between 0 to 1. + + + + Gets the hexadecimal representation of the color (e.g. #000ccc). + + + A hexadecimal string of the color. + + + + + Represents a generic role object to be given to a guild user. + + + + + Gets the guild that owns this role. + + + A guild representing the parent guild of this role. + + + + + Gets the color given to users of this role. + + + A struct representing the color of this role. + + + + + Gets a value that indicates whether the role can be separated in the user list. + + + true if users of this role are separated in the user list; otherwise false. + + + + + Gets a value that indicates whether the role is managed by Discord. + + + true if this role is automatically managed by Discord; otherwise false. + + + + + Gets a value that indicates whether the role is mentionable. + + + true if this role may be mentioned in messages; otherwise false. + + + + + Gets the name of this role. + + + A string containing the name of this role. + + + + + Gets the permissions granted to members of this role. + + + A struct that this role possesses. + + + + + Gets this role's position relative to other roles in the same guild. + + + An representing the position of the role in the role list of the guild. + + + + + Modifies this role. + + + This method modifies this role with the specified properties. To see an example of this + method and what properties are available, please refer to . + + A delegate containing the properties to modify the role with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Properties that are used to reorder an . + + + + + Gets the identifier of the role to be edited. + + + A representing the snowflake identifier of the role to be modified. + + + + + Gets the new zero-based position of the role. + + + An representing the new zero-based position of the role. + + + + + Initializes a with the given role ID and position. + + The ID of the role to be edited. + The new zero-based position of the role. + + + + Properties that are used to modify an with the specified changes. + + + The following example modifies the role to a mentionable one, renames the role into Sonic, and + changes the color to a light-blue. + + await role.ModifyAsync(x => + { + x.Name = "Sonic"; + x.Color = new Color(0x1A50BC); + x.Mentionable = true; + }); + + + + + + + Gets or sets the name of the role. + + + This value may not be set if the role is an @everyone role. + + + + + Gets or sets the role's . + + + + + Gets or sets the position of the role. This is 0-based! + + + This value may not be set if the role is an @everyone role. + + + + + Gets or sets the color of the role. + + + This value may not be set if the role is an @everyone role. + + + + + Gets or sets whether or not this role should be displayed independently in the user list. + + + This value may not be set if the role is an @everyone role. + + + + + Gets or sets whether or not this role can be mentioned. + + + This value may not be set if the role is an @everyone role. + + + + + Represents a Discord Team. + + + + + Gets the team icon url. + + + + + Gets the team unique identifier. + + + + + Gets the members of this team. + + + + + Gets the user identifier that owns this team. + + + + + Represents a Discord Team member. + + + + + Gets the membership state of this team member. + + + + + Gets the permissions of this team member. + + + + + Gets the team unique identifier for this team member. + + + + + Gets the Discord user of this team member. + + + + + Represents the membership state of a team member. + + + + + Properties that are used to add a new to the guild with the following parameters. + + + + + + Gets or sets the user's nickname. + + + To clear the user's nickname, this value can be set to null or + . + + + + + Gets or sets whether the user should be muted in a voice channel. + + + If this value is set to true, no user will be able to hear this user speak in the guild. + + + + + Gets or sets whether the user should be deafened in a voice channel. + + + If this value is set to true, this user will not be able to hear anyone speak in the guild. + + + + + Gets or sets the roles the user should have. + + + + To add a role to a user: + + + + To remove a role from a user: + + + + + + + Gets or sets the roles the user should have. + + + + To add a role to a user: + + + + To remove a role from a user: + + + + + + + Defines the types of clients a user can be active on. + + + + + The user is active using the mobile application. + + + + + The user is active using the desktop application. + + + + + The user is active using the web application. + + + + + Properties that are used to modify an with the following parameters. + + + + + + Gets or sets whether the user should be muted in a voice channel. + + + If this value is set to true, no user will be able to hear this user speak in the guild. + + + + + Gets or sets whether the user should be deafened in a voice channel. + + + If this value is set to true, this user will not be able to hear anyone speak in the guild. + + + + + Gets or sets the user's nickname. + + + To clear the user's nickname, this value can be set to null or + . + + + + + Gets or sets the roles the user should have. + + + + To add a role to a user: + + + + To remove a role from a user: + + + + + + + Gets or sets the roles the user should have. + + + + To add a role to a user: + + + + To remove a role from a user: + + + + + + + Moves a user to a voice channel. If null, this user will be disconnected from their current voice channel. + + + This user MUST already be in a for this to work. + When set, this property takes precedence over . + + + + + Moves a user to a voice channel. Set to null to disconnect this user from their current voice channel. + + + This user MUST already be in a for this to work. + + + + Gets the ID of the connection account. + A representing the unique identifier value of this connection. + + + Gets the service of the connection (twitch, youtube). + A string containing the name of this type of connection. + + + Gets the username of the connection account. + A string containing the name of this connection. + + + Gets whether the connection is revoked. + A value which if true indicates that this connection has been revoked, otherwise false. + + + Gets a of integration IDs. + + An containing + representations of unique identifier values of integrations. + + + + + Represents a Discord user that is in a group. + + + + + Represents a generic guild user. + + + + + Gets when this user joined the guild. + + + A representing the time of which the user has joined the guild; + null when it cannot be obtained. + + + + + Gets the nickname for this user. + + + A string representing the nickname of the user; null if none is set. + + + + + Gets the guild-level permissions for this user. + + + A structure for this user, representing what + permissions this user has in the guild. + + + + + Gets the guild for this user. + + + A guild object that this user belongs to. + + + + + Gets the ID of the guild for this user. + + + An representing the snowflake identifier of the guild that this user belongs to. + + + + + Gets the date and time for when this user's guild boost began. + + + A for when the user began boosting this guild; null if they are not boosting the guild. + + + + + Gets a collection of IDs for the roles that this user currently possesses in the guild. + + + This property returns a read-only collection of the identifiers of the roles that this user possesses. + For WebSocket users, a Roles property can be found in place of this property. Due to the REST + implementation, only a collection of identifiers can be retrieved instead of the full role objects. + + + A read-only collection of , each representing a snowflake identifier for a role that + this user possesses. + + + + + Gets the level permissions granted to this user to a given channel. + + + The following example checks if the current user has the ability to send a message with attachment in + this channel; if so, uploads a file via . + + if (currentUser?.GetPermissions(targetChannel)?.AttachFiles) + await targetChannel.SendFileAsync("fortnite.png"); + + + The channel to get the permission from. + + A structure representing the permissions that a user has in the + specified channel. + + + + + Kicks this user from this guild. + + The reason for the kick which will be recorded in the audit log. + The options to be used when sending the request. + + A task that represents the asynchronous kick operation. + + + + + Modifies this user's properties in this guild. + + + This method modifies the current guild user with the specified properties. To see an example of this + method and what properties are available, please refer to . + + The delegate containing the properties to modify the user with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + + + + Adds the specified role to this user in the guild. + + The role to be added to the user. + The options to be used when sending the request. + + A task that represents the asynchronous role addition operation. + + + + + Adds the specified to this user in the guild. + + The roles to be added to the user. + The options to be used when sending the request. + + A task that represents the asynchronous role addition operation. + + + + + Removes the specified from this user in the guild. + + The role to be removed from the user. + The options to be used when sending the request. + + A task that represents the asynchronous role removal operation. + + + + + Removes the specified from this user in the guild. + + The roles to be removed from the user. + The options to be used when sending the request. + + A task that represents the asynchronous role removal operation. + + + + + Represents the user's presence status. This may include their online status and their activity. + + + + + Gets the activity this user is currently doing. + + + + + Gets the current status of this user. + + + + + Gets the set of clients where this user is currently active. + + + + + Gets the list of activities that this user currently has available. + + + + + Represents the logged-in Discord user. + + + + + Gets the email associated with this user. + + + + + Indicates whether or not this user has their email verified. + + + true if this user's email has been verified; false if not. + + + + + Indicates whether or not this user has MFA enabled on their account. + + + true if this user has enabled multi-factor authentication on their account; false if not. + + + + + Gets the flags that are applied to a user's account. + + + This value is determined by bitwise OR-ing values together. + + + The value of flags for this user. + + + + + Gets the type of Nitro subscription that is active on this user's account. + + + This information may only be available with the identify OAuth scope. + + + The type of Nitro subscription the user subscribes to, if any. + + + + + Gets the user's chosen language option. + + + The IETF language tag of the user's chosen region, if provided. + For example, a locale of "English, US" is "en-US", "Chinese (Taiwan)" is "zh-TW", etc. + + + + + Modifies the user's properties. + + + + + Represents a generic user. + + + + + Gets the identifier of this user's avatar. + + + + + Gets the avatar URL for this user. + + + This property retrieves a URL for this user's avatar. In event that the user does not have a valid avatar + (i.e. their avatar identifier is not set), this property will return null. If you wish to + retrieve the default avatar for this user, consider using (see + example). + + + The following example attempts to retrieve the user's current avatar and send it to a channel; if one is + not set, a default avatar for this user will be returned instead. + + + The format to return. + The size of the image to return in. This can be any power of two between 16 and 2048. + + + A string representing the user's avatar URL; null if the user does not have an avatar in place. + + + + + Gets the default avatar URL for this user. + + + This property retrieves a URL for this user's default avatar generated by Discord (Discord logo followed + by a random color as its background). This property will always return a value as it is calculated based + on the user's (discriminator % 5). + + + A string representing the user's avatar URL. + + + + + Gets the per-username unique ID for this user. + + + + + Gets the per-username unique ID for this user. + + + + + Gets a value that indicates whether this user is identified as a bot. + + + This property retrieves a value that indicates whether this user is a registered bot application + (indicated by the blue BOT tag within the official chat client). + + + true if the user is a bot application; otherwise false. + + + + + Gets a value that indicates whether this user is a webhook user. + + + true if the user is a webhook; otherwise false. + + + + + Gets the username for this user. + + + + + Gets the direct message channel of this user, or create one if it does not already exist. + + + This method is used to obtain or create a channel used to send a direct message. + + In event that the current user cannot send a message to the target user, a channel can and will + still be created by Discord. However, attempting to send a message will yield a + with a 403 as its + . There are currently no official workarounds by + Discord. + + + + The following example attempts to send a direct message to the target user and logs the incident should + it fail. + + + The options to be used when sending the request. + + A task that represents the asynchronous operation for getting or creating a DM channel. The task result + contains the DM channel associated with this user. + + + + + Represents a user's voice connection status. + + + + + Gets a value that indicates whether this user is deafened by the guild. + + + true if the user is deafened (i.e. not permitted to listen to or speak to others) by the guild; + otherwise false. + + + + + Gets a value that indicates whether this user is muted (i.e. not permitted to speak via voice) by the + guild. + + + true if this user is muted by the guild; otherwise false. + + + + + Gets a value that indicates whether this user has marked themselves as deafened. + + + true if this user has deafened themselves (i.e. not permitted to listen to or speak to others); otherwise false. + + + + + Gets a value that indicates whether this user has marked themselves as muted (i.e. not permitted to + speak via voice). + + + true if this user has muted themselves; otherwise false. + + + + + Gets a value that indicates whether the user is muted by the current user. + + + true if the guild is temporarily blocking audio to/from this user; otherwise false. + + + + + Gets the voice channel this user is currently in. + + + A generic voice channel object representing the voice channel that the user is currently in; null + if none. + + + + + Gets the unique identifier for this user's voice session. + + + + + Gets a value that indicates if this user is streaming in a voice channel. + + + true if the user is streaming; otherwise false. + + + + Represents a Webhook Discord user. + + + Gets the ID of a webhook. + + + + Specifies the type of subscription a user is subscribed to. + + + + + No subscription. + + + + + Nitro Classic subscription. Includes app perks like animated emojis and avatars, but not games. + + + + + Nitro subscription. Includes app perks as well as the games subscription service. + + + + + Properties that are used to modify the with the specified changes. + + + + + + Gets or sets the username. + + + + + Gets or sets the avatar. + + + + + Default value for flags, when none are given to an account. + + + + + Flag given to Discord staff. + + + + + Flag given to Discord partners. + + + + + Flag given to users who have participated in the bug report program. + + + + + Flag given to users who are in the HypeSquad House of Bravery. + + + + + Flag given to users who are in the HypeSquad House of Brilliance. + + + + + Flag given to users who are in the HypeSquad House of Balance. + + + + + Flag given to users who subscribed to Nitro before games were added. + + + + + Defines the available Discord user status. + + + + + The user is offline. + + + + + The user is online. + + + + + The user is idle. + + + + + The user is AFK. + + + + + The user is busy. + + + + + The user is invisible. + + + + + Represents a webhook object on Discord. + + + + + Gets the token of this webhook. + + + + + Gets the default name of this webhook. + + + + + Gets the ID of this webhook's default avatar. + + + + + Gets the URL to this webhook's default avatar. + + + + + Gets the channel for this webhook. + + + + + Gets the ID of the channel for this webhook. + + + + + Gets the guild owning this webhook. + + + + + Gets the ID of the guild owning this webhook. + + + + + Gets the user that created this webhook. + + + + + Modifies this webhook. + + + + + Properties used to modify an with the specified changes. + + + + + + Gets or sets the default name of the webhook. + + + + + Gets or sets the default avatar of the webhook. + + + + + Gets or sets the channel for this webhook. + + + This field is not used when authenticated with . + + + + + Gets or sets the channel ID for this webhook. + + + This field is not used when authenticated with . + + + + + Represents the type of a webhook. + + + This type is currently unused, and is only returned in audit log responses. + + + + An incoming webhook + + + An extension class for squashing . + + This set of extension methods will squash an into a + single . This is often associated with requests that has a + set limit when requesting. + + + + Flattens the specified pages into one asynchronously. + + + Flattens the specified pages into one . + + + + The prefix applied to files to indicate that it is a spoiler. + + + + + Gets whether the message's attachments are spoilers or not. + + + + An extension class for the Discord client. + + + Gets the private channel with the provided ID. + + + Gets the DM channel with the provided ID. + + + Gets all available DM channels for the client. + + + Gets the group channel with the provided ID. + + + Gets all available group channels for the client. + + + Gets the most optimal voice region for the client. + + + An extension class for building an embed. + + + Adds embed color based on the provided raw value. + + + Adds embed color based on the provided RGB value. + + + Adds embed color based on the provided RGB value. + The argument value is not between 0 to 255. + + + Adds embed color based on the provided RGB value. + The argument value is not between 0 to 1. + + + Fills the embed author field with the provided user's full username and avatar URL. + + + Converts a object to a . + The embed type is not . + + + + Adds the specified fields into this . + + Field count exceeds . + + + + Adds the specified fields into this . + + + + + An extension class for . + + + + + Gets if welcome system messages are enabled. + + The guild to check. + A bool indicating if the welcome messages are enabled in the system channel. + + + + Gets if guild boost system messages are enabled. + + The guild to check. + A bool indicating if the guild boost messages are enabled in the system channel. + + + + Provides extension methods for . + + + + + Gets a URL that jumps to the message. + + The message to jump to. + + A string that contains a URL for jumping to the message in chat. + + + + + Add multiple reactions to a message. + + + This method does not bulk add reactions! It will send a request for each reaction inculded. + + + + IEmote A = new Emoji("🅰"); + IEmote B = new Emoji("🅱"); + await msg.AddReactionsAsync(new[] { A, B }); + + + The message to add reactions to. + An array of reactions to add to the message + The options to be used when sending the request. + + A task that represents the asynchronous operation for adding a reaction to this message. + + + + + + + Remove multiple reactions from a message. + + + This method does not bulk remove reactions! If you want to clear reactions from a message, + + + + + await msg.RemoveReactionsAsync(currentUser, new[] { A, B }); + + + The message to remove reactions from. + An array of reactions to remove from the message + The options to be used when sending the request. + + A task that represents the asynchronous operation for removing a reaction to this message. + + + + + + + Sends an inline reply that references a message. + + The message to be sent. + Determines whether the message should be read aloud by Discord or not. + The to be sent. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The options to be used when sending the request. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + An extension class for various Discord user objects. + + + + Sends a message via DM. + + + This method attempts to send a direct-message to the user. + + + Please note that this method will throw an + if the user cannot receive DMs due to privacy reasons or if the user has the sender blocked. + + + You may want to consider catching for + 50007 when using this method. + + + + The user to send the DM to. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + + A task that represents the asynchronous send operation. The task result contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + The following example uploads a streamed image that will be called b1nzy.jpg embedded inside a + rich embed to the channel. + + await channel.SendFileAsync(b1nzyStream, "b1nzy.jpg", + embed: new EmbedBuilder {ImageUrl = "attachment://b1nzy.jpg"}.Build()); + + + + This method attempts to send an attachment as a direct-message to the user. + + + Please note that this method will throw an + if the user cannot receive DMs due to privacy reasons or if the user has the sender blocked. + + + You may want to consider catching for + 50007 when using this method. + + + + If you wish to upload an image and have it embedded in a embed, + you may upload the file and refer to the file with "attachment://filename.ext" in the + . See the example section for its usage. + + + The user to send the DM to. + The of the file to be sent. + The name of the attachment. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file via DM with an optional caption. + + + The following example uploads a local file called wumpus.txt along with the text + good discord boi to the channel. + + await channel.SendFileAsync("wumpus.txt", "good discord boi"); + + + The following example uploads a local image called b1nzy.jpg embedded inside a rich embed to the + channel. + + await channel.SendFileAsync("b1nzy.jpg", + embed: new EmbedBuilder {ImageUrl = "attachment://b1nzy.jpg"}.Build()); + + + + This method attempts to send an attachment as a direct-message to the user. + + + Please note that this method will throw an + if the user cannot receive DMs due to privacy reasons or if the user has the sender blocked. + + + You may want to consider catching for + 50007 when using this method. + + + + If you wish to upload an image and have it embedded in a embed, + you may upload the file and refer to the file with "attachment://filename.ext" in the + . See the example section for its usage. + + + The user to send the DM to. + The file path of the file. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Bans the user from the guild and optionally prunes their recent messages. + + The user to ban. + The number of days to remove messages from this for - must be between [0, 7] + The reason of the ban to be written in the audit log. + The options to be used when sending the request. + is not between 0 to 7. + + A task that represents the asynchronous operation for banning a user. + + + + A helper class for formatting characters. + + + Returns a markdown-formatted string with bold formatting. + + + Returns a markdown-formatted string with italics formatting. + + + Returns a markdown-formatted string with underline formatting. + + + Returns a markdown-formatted string with strikethrough formatting. + + + Returns a string with spoiler formatting. + + + Returns a markdown-formatted URL. Only works in descriptions and fields. + + + Escapes a URL so that a preview is not generated. + + + Returns a markdown-formatted string with codeblock formatting. + + + Sanitizes the string, safely escaping any Markdown sequences. + + + + Formats a string as a quote. + + The text to format. + Gets the formatted quote text. + + + + Formats a string as a block quote. + + The text to format. + Gets the formatted block quote text. + + + This intent includes no events + + + This intent includes GUILD_CREATE, GUILD_UPDATE, GUILD_DELETE, GUILD_ROLE_CREATE, GUILD_ROLE_UPDATE, GUILD_ROLE_DELETE, CHANNEL_CREATE, CHANNEL_UPDATE, CHANNEL_DELETE, CHANNEL_PINS_UPDATE + + + This intent includes GUILD_MEMBER_ADD, GUILD_MEMBER_UPDATE, GUILD_MEMBER_REMOVE + This is a privileged intent and must be enabled in the Developer Portal. + + + This intent includes GUILD_BAN_ADD, GUILD_BAN_REMOVE + + + This intent includes GUILD_EMOJIS_UPDATE + + + This intent includes GUILD_INTEGRATIONS_UPDATE + + + This intent includes WEBHOOKS_UPDATE + + + This intent includes INVITE_CREATE, INVITE_DELETE + + + This intent includes VOICE_STATE_UPDATE + + + This intent includes PRESENCE_UPDATE + This is a privileged intent and must be enabled in the Developer Portal. + + + This intent includes MESSAGE_CREATE, MESSAGE_UPDATE, MESSAGE_DELETE, MESSAGE_DELETE_BULK + + + This intent includes MESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVE, MESSAGE_REACTION_REMOVE_ALL, MESSAGE_REACTION_REMOVE_EMOJI + + + This intent includes TYPING_START + + + This intent includes CHANNEL_CREATE, MESSAGE_CREATE, MESSAGE_UPDATE, MESSAGE_DELETE, CHANNEL_PINS_UPDATE + + + This intent includes MESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVE, MESSAGE_REACTION_REMOVE_ALL, MESSAGE_REACTION_REMOVE_EMOJI + + + This intent includes TYPING_START + + + + Represents a generic Discord client. + + + + + Gets the current state of connection. + + + + + Gets the currently logged-in user. + + + + + Gets the token type of the logged-in user. + + + + + Starts the connection between Discord and the client.. + + + This method will initialize the connection between the client and Discord. + + This method will immediately return after it is called, as it will initialize the connection on + another thread. + + + + A task that represents the asynchronous start operation. + + + + + Stops the connection between Discord and the client. + + + A task that represents the asynchronous stop operation. + + + + + Gets a Discord application information for the logged-in user. + + + This method reflects your application information you submitted when creating a Discord application via + the Developer Portal. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the application + information. + + + + + Gets a generic channel. + + + + var channel = await _client.GetChannelAsync(381889909113225237); + if (channel != null && channel is IMessageChannel msgChannel) + { + await msgChannel.SendMessageAsync($"{msgChannel} is created at {msgChannel.CreatedAt}"); + } + + + The snowflake identifier of the channel (e.g. `381889909113225237`). + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the channel associated + with the snowflake identifier; null when the channel cannot be found. + + + + + Gets a collection of private channels opened in this session. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + This method will retrieve all private channels (including direct-message, group channel and such) that + are currently opened in this session. + + This method will not return previously opened private channels outside of the current session! If + you have just started the client, this may return an empty collection. + + + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of private channels that the user currently partakes in. + + + + + Gets a collection of direct message channels opened in this session. + + + This method returns a collection of currently opened direct message channels. + + This method will not return previously opened DM channels outside of the current session! If you + have just started the client, this may return an empty collection. + + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of direct-message channels that the user currently partakes in. + + + + + Gets a collection of group channels opened in this session. + + + This method returns a collection of currently opened group channels. + + This method will not return previously opened group channels outside of the current session! If you + have just started the client, this may return an empty collection. + + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of group channels that the user currently partakes in. + + + + + Gets the connections that the user has set up. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of connections. + + + + + Gets a guild. + + The guild snowflake identifier. + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the guild associated + with the snowflake identifier; null when the guild cannot be found. + + + + + Gets a collection of guilds that the user is currently in. + + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of guilds that the current user is in. + + + + + Creates a guild for the logged-in user who is in less than 10 active guilds. + + + This method creates a new guild on behalf of the logged-in user. + + Due to Discord's limitation, this method will only work for users that are in less than 10 guilds. + + + The name of the new guild. + The voice region to create the guild with. + The icon of the guild. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the created guild. + + + + + Gets an invite. + + The invitation identifier. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the invite information. + + + + + Gets a user. + + + + var user = await _client.GetUserAsync(168693960628371456); + if (user != null) + Console.WriteLine($"{user} is created at {user.CreatedAt}."; + + + The snowflake identifier of the user (e.g. `168693960628371456`). + The that determines whether the object should be fetched from cache. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the user associated with + the snowflake identifier; null if the user is not found. + + + + + Gets a user. + + + + var user = await _client.GetUserAsync("Still", "2876"); + if (user != null) + Console.WriteLine($"{user} is created at {user.CreatedAt}."; + + + The name of the user (e.g. `Still`). + The discriminator value of the user (e.g. `2876`). + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the user associated with + the name and the discriminator; null if the user is not found. + + + + + Gets a collection of the available voice regions. + + + The following example gets the most optimal voice region from the collection. + + var regions = await client.GetVoiceRegionsAsync(); + var optimalRegion = regions.FirstOrDefault(x => x.IsOptimal); + + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + with all of the available voice regions in this session. + + + + + Gets a voice region. + + The identifier of the voice region (e.g. eu-central ). + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the voice region + associated with the identifier; null if the voice region is not found. + + + + + Gets a webhook available. + + The identifier of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a webhook associated + with the identifier; null if the webhook is not found. + + + + + Gets the recommended shard count as suggested by Discord. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains an + that represents the number of shards that should be used with this account. + + + + + Gets the gateway information related to the bot. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a + that represents the gateway information related to the bot. + + + + + Provides a message object used for logging purposes. + + + + + Gets the severity of the log entry. + + + A enum to indicate the severeness of the incident or event. + + + + + Gets the source of the log entry. + + + A string representing the source of the log entry. + + + + + Gets the message of this log entry. + + + A string containing the message of this log entry. + + + + + Gets the exception of this log entry. + + + An object associated with an incident; otherwise null. + + + + + Initializes a new struct with the severity, source, message of the event, and + optionally, an exception. + + The severity of the event. + The source of the event. + The message of the event. + The exception of the event. + + + + Specifies the severity of the log message. + + + + + Logs that contain the most severe level of error. This type of error indicate that immediate attention + may be required. + + + + + Logs that highlight when the flow of execution is stopped due to a failure. + + + + + Logs that highlight an abnormal activity in the flow of execution. + + + + + Logs that track the general flow of the application. + + + + + Logs that are used for interactive investigation during development. + + + + + Logs that contain the most detailed messages. + + + + Specifies the state of the client's login status. + + + The client is currently logged out. + + + The client is currently logging in. + + + The client is currently logged in. + + + The client is currently logging out. + + + + Gets the JSON error code returned by Discord. + + + A + JSON error code + from Discord, or null if none. + + + + + Gets the reason of the exception. + + + + + Gets the request object used to send the request. + + + + + The error object returned from discord. + + + Note: This object can be null if discord didn't provide it. + + + + + The request json used to create the application command. This is useful for checking your commands for any format errors. + + + + + The underlying that caused this exception to be thrown. + + + + + Initializes a new instance of the class. + + The request that was sent prior to the exception. + + + The Discord status code returned. + The reason behind the exception. + + + + + Represents a ratelimit bucket. + + + + + Gets the http method used to make the request if available. + + + + + Gets the endpoint that is going to be requested if available. + + + + + Gets the major parameters of the route. + + + + + Gets the hash of this bucket. + + + The hash is provided by Discord to group ratelimits. + + + + + Gets if this bucket is a hash type. + + + + + Creates a new based on the + and . + + Http method used to make the request. + Endpoint that is going to receive requests. + Major parameters of the route of this endpoint. + + A based on the + and the with the provided data. + + + + + Creates a new based on a + and a previous . + + Bucket hash provided by Discord. + that is going to be upgraded to a hash type. + + A based on the + and . + + + + + Gets the string that will define this bucket as a hash based one. + + + A that defines this bucket as a hash based one. + + + + + Gets the string that will define this bucket as an endpoint based one. + + + A that defines this bucket as an endpoint based one. + + + + + The exception that is thrown if an error occurs while processing an Discord HTTP request. + + + + + Gets the HTTP status code returned by Discord. + + + An + HTTP status code + from Discord. + + + + + Gets the JSON error code returned by Discord. + + + A + JSON error code + from Discord, or null if none. + + + + + Gets the reason of the exception. + + + + + Gets the request object used to send the request. + + + + + The error object returned from discord. + + + Note: This object can be null if discord didn't provide it. + + + + + Initializes a new instance of the class. + + The HTTP status code returned. + The request that was sent prior to the exception. + The Discord status code returned. + The reason behind the exception. + + + + Represents a generic request to be sent to Discord. + + + + + The exception that is thrown when the user is being rate limited by Discord. + + + + + Gets the request object used to send the request. + + + + + Initializes a new instance of the class using the + sent. + + + + + Represents a generic REST-based client. + + + + + Sets the HTTP header of this client for all requests. + + The field name of the header. + The value of the header. + + + + Sets the cancellation token for this client. + + The cancellation token. + + + + Sends a REST request. + + The method used to send this request (i.e. HTTP verb such as GET, POST). + The endpoint to send this request to. + The cancellation token used to cancel the task. + Indicates whether to send the header only. + The audit log reason. + + + + + The exception that is thrown when the WebSocket session is closed by Discord. + + + + + Gets the close code sent by Discord. + + + A + close code + from Discord. + + + + + Gets the reason of the interruption. + + + + + Initializes a new instance of the using a Discord close code + and an optional reason. + + + + + Specifies the level of precision to request in the rate limit + response header. + + + + + Specifies precision rounded up to the nearest whole second + + + + + Specifies precision rounded to the nearest millisecond. + + + + + Represents options that should be used when sending a request. + + + + + Creates a new class with its default settings. + + + + + Gets or sets the maximum time to wait for for this request to complete. + + + Gets or set the max time, in milliseconds, to wait for for this request to complete. If + null, a request will not time out. If a rate limit has been triggered for this request's bucket + and will not be unpaused in time, this request will fail immediately. + + + A in milliseconds for when the request times out. + + + + + Gets or sets the cancellation token for this request. + + + A for this request. + + + + + Gets or sets the retry behavior when the request fails. + + + + + Gets or sets the reason for this action in the guild's audit log. + + + Gets or sets the reason that will be written to the guild's audit log if applicable. This may not apply + to all actions. + + + + + Gets or sets whether or not this request should use the system + clock for rate-limiting. Defaults to true. + + + This property can also be set in . + On a per-request basis, the system clock should only be disabled + when millisecond precision is especially important, and the + hosting system is known to have a desynced clock. + + + + + Initializes a new class with the default request timeout set in + . + + + + Specifies how a request should act in the case of an error. + + + If a request fails, an exception is thrown immediately. + + + Retry if a request timed out. + + + Retry if a request failed due to a rate-limit. + + + Retry if a request failed due to an HTTP error 502. + + + Continuously retry a request until it times out, its cancel token is triggered, or the server responds with a non-502 error. + + + Specifies the type of token to use with the client. + + + + An OAuth2 token type. + + + + + A bot token type. + + + + + A webhook token type. + + + + + Represents a cached entity. + + The type of entity that is cached. + The type of this entity's ID. + + + + Gets whether this entity is cached. + + + + + Gets the ID of this entity. + + + + + Gets the entity if it could be pulled from cache. + + + This value is not guaranteed to be set; in cases where the entity cannot be pulled from cache, it is + null. + + + + + Downloads this entity to cache. + + Thrown when used from a user account. + Thrown when the message is deleted. + + A task that represents the asynchronous download operation. The task result contains the downloaded + entity. + + + + + Returns the cached entity if it exists; otherwise downloads it. + + Thrown when used from a user account. + Thrown when the message is deleted and is not in cache. + + A task that represents the asynchronous operation that attempts to get the message via cache or to + download the message. The task result contains the downloaded entity. + + + + + Represents a collection of for various Discord objects. + + + + + Gets an to be used to compare users. + + + + + Gets an to be used to compare guilds. + + + + + Gets an to be used to compare channels. + + + + + Gets an to be used to compare roles. + + + + + Gets an to be used to compare messages. + + + + is null + + + + or is null + + + + is null + + + is null + + + is null + + + + + + + Provides a series of helper methods for parsing mentions. + + + + + Returns a mention string based on the user ID. + + + A user mention string (e.g. <@80351110224678912>). + + + + + Returns a mention string based on the channel ID. + + + A channel mention string (e.g. <#103735883630395392>). + + + + + Returns a mention string based on the role ID. + + + A role mention string (e.g. <@&165511591545143296>). + + + + + Parses a provided user mention string. + + Invalid mention format. + + + + Tries to parse a provided user mention string. + + + + + Parses a provided channel mention string. + + Invalid mention format. + + + + Tries to parse a provided channel mention string. + + + + + Parses a provided role mention string. + + Invalid mention format. + + + + Tries to parse a provided role mention string. + + + + Gets the value for this parameter. + This property has no value set. + + + Returns true if this value has been specified. + + + Creates a new Parameter with the provided value. + + + must not be . + + + must not be . + + + cannot be blank. + + + cannot be blank. + + + cannot be blank. + must not be . + + + cannot be blank. + must not be . + + + cannot be blank. + must not be . + + + cannot be blank. + must not be . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value may not be equal to . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be at least . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be greater than . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be at most . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Value must be less than . + + + Messages are younger than 2 weeks. + + + The everyone role cannot be assigned to a user. + + + + Provides a series of helper methods for handling snowflake identifiers. + + + + + Resolves the time of which the snowflake is generated. + + The snowflake identifier to resolve. + + A representing the time for when the object is geenrated. + + + + + Generates a pseudo-snowflake identifier with a . + + The time to be used in the new snowflake. + + A representing the newly generated snowflake identifier. + + + + + Provides a series of helper methods for handling Discord login tokens. + + + + + The minimum length of a Bot token. + + + This value was determined by comparing against the examples in the Discord + documentation, and pre-existing tokens. + + + + + Pads a base64-encoded string with 0, 1, or 2 '=' characters, + if the string is not a valid multiple of 4. + Does not ensure that the provided string contains only valid base64 characters. + Strings that already contain padding will not have any more padding applied. + + + A string that would require 3 padding characters is considered to be already corrupt. + Some older bot tokens may require padding, as the format provided by Discord + does not include this padding in the token. + + The base64 encoded string to pad with characters. + A string containing the base64 padding. + + Thrown if would require an invalid number of padding characters. + + + Thrown if is null, empty, or whitespace. + + + + + Decodes a base 64 encoded string into a ulong value. + + A base 64 encoded string containing a User Id. + A ulong containing the decoded value of the string, or null if the value was invalid. + + + + Checks the validity of a bot token by attempting to decode a ulong userid + from the bot token. + + + The bot token to validate. + + + True if the bot token was valid, false if it was not. + + + + + The set of all characters that are not allowed inside of a token. + + + + + Checks if the given token contains a whitespace or newline character + that would fail to log in. + + The token to validate. + + True if the token contains a whitespace or newline character. + + + + + Checks the validity of the supplied token of a specific type. + + The type of token to validate. + The token value to validate. + Thrown when the supplied token string is null, empty, or contains only whitespace. + Thrown when the supplied or token value is invalid. + + + diff --git a/src/Discord.Net.Rest/Discord.Net.Rest.csproj b/src/Discord.Net.Rest/Discord.Net.Rest.csproj index f1b258b75..906e0a110 100644 --- a/src/Discord.Net.Rest/Discord.Net.Rest.csproj +++ b/src/Discord.Net.Rest/Discord.Net.Rest.csproj @@ -9,12 +9,15 @@ netstandard2.0;netstandard2.1 Temporary.png https://github.com/Discord-Net-Labs/Discord.Net-Labs - 2.3.6 + 2.3.7 Discord.Net.Labs.Rest https://github.com/Discord-Net-Labs/Discord.Net-Labs 2.3.4 2.3.4 + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.Rest\Discord.Net.Rest.xml + diff --git a/src/Discord.Net.Rest/Discord.Net.Rest.xml b/src/Discord.Net.Rest/Discord.Net.Rest.xml new file mode 100644 index 000000000..e19460973 --- /dev/null +++ b/src/Discord.Net.Rest/Discord.Net.Rest.xml @@ -0,0 +1,4382 @@ + + + + Discord.Net.Rest + + + + + Gets the snowflake ID of the application. + + + + + Gets the ID of the embed's image asset. + + + + + Gets the application's description. + + + + + Gets the ID of the application's icon. + + + + + Gets the name of the application. + + + + Unknown OAuth token type. + + + Unknown OAuth token type. + + + Unknown OAuth token type. + + + + must not be equal to zero. + -and- + must be greater than zero. + + + must not be . + -and- + must not be or empty. + + + + Message content is too long, length must be less or equal to . + + + Message content is too long, length must be less or equal to . + This operation may only be called with a token. + + + Message content is too long, length must be less or equal to . + + + Message content is too long, length must be less or equal to . + This operation may only be called with a token. + + + Message content is too long, length must be less or equal to . + + + + and must not be equal to zero. + -and- + must be between 0 to 7. + + must not be . + + + and must not be equal to zero. + + + must not be equal to zero. + + + must not be equal to zero. + must not be . + + + must not be equal to zero. + + + must not be equal to zero. + must not be . + + + must not be equal to zero. + + + and must not be equal to zero. + must not be . + + + cannot be blank. + must not be . + + + may not be equal to zero. + + + may not be equal to zero. + + + may not be equal to zero. + + + + may not be equal to zero. + -and- + and must be greater than zero. + -and- + must be lesser than 86400. + + must not be . + + + Client is not logged in. + + + Unsupported param type. + + + The default RestClientProvider is not supported on this platform. + + + Cannot read from image. + + + Unknown permission target. + + + Invalid permission target. + + + + Gets the login state of the client. + + + + + Gets the logged-in user. + + + + + + + Creates a new REST-only Discord client. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creating a guild is not supported with the base client. + + + + + + + + + + + + + + + + + + + + + + + + Unexpected channel type. + + + + Provides a client to send REST-based requests to Discord. + + + + + Gets the logged-in user. + + + + + + + + Initializes a new with the provided configuration. + + The configuration to be used with the client. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a configuration class for . + + + + Gets or sets the provider used to generate new REST connections. + + + + Contains a piece of audit log data related to a ban. + + + + + Gets the user that was banned. + + + A user object representing the banned user. + + + + + Contains a piece of audit log data related to a adding a bot to a guild. + + + + + Gets the bot that was added. + + + A user object representing the bot. + + + + + Contains a piece of audit log data related to a channel creation. + + + + + Gets the snowflake ID of the created channel. + + + A representing the snowflake identifier for the created channel. + + + + + Gets the name of the created channel. + + + A string containing the name of the created channel. + + + + + Gets the type of the created channel. + + + The type of channel that was created. + + + + + Gets the current slow-mode delay of the created channel. + + + An representing the time in seconds required before the user can send another + message; 0 if disabled. + null if this is not mentioned in this entry. + + + + + Gets the value that indicates whether the created channel is NSFW. + + + true if the created channel has the NSFW flag enabled; otherwise false. + null if this is not mentioned in this entry. + + + + + Gets the bit-rate that the clients in the created voice channel are requested to use. + + + An representing the bit-rate (bps) that the created voice channel defines and requests the + client(s) to use. + null if this is not mentioned in this entry. + + + + + Gets a collection of permission overwrites that was assigned to the created channel. + + + A collection of permission , containing the permission overwrites that were + assigned to the created channel. + + + + + Contains a piece of audit log data related to a channel deletion. + + + + + Gets the snowflake ID of the deleted channel. + + + A representing the snowflake identifier for the deleted channel. + + + + + Gets the name of the deleted channel. + + + A string containing the name of the deleted channel. + + + + + Gets the type of the deleted channel. + + + The type of channel that was deleted. + + + + + Gets the slow-mode delay of the deleted channel. + + + An representing the time in seconds required before the user can send another + message; 0 if disabled. + null if this is not mentioned in this entry. + + + + + Gets the value that indicates whether the deleted channel was NSFW. + + + true if this channel had the NSFW flag enabled; otherwise false. + null if this is not mentioned in this entry. + + + + + Gets the bit-rate of this channel if applicable. + + + An representing the bit-rate set of the voice channel. + null if this is not mentioned in this entry. + + + + + Gets a collection of permission overwrites that was assigned to the deleted channel. + + + A collection of permission . + + + + + Represents information for a channel. + + + + + Gets the name of this channel. + + + A string containing the name of this channel. + + + + + Gets the topic of this channel. + + + A string containing the topic of this channel, if any. + + + + + Gets the current slow-mode delay of this channel. + + + An representing the time in seconds required before the user can send another + message; 0 if disabled. + null if this is not mentioned in this entry. + + + + + Gets the value that indicates whether this channel is NSFW. + + + true if this channel has the NSFW flag enabled; otherwise false. + null if this is not mentioned in this entry. + + + + + Gets the bit-rate of this channel if applicable. + + + An representing the bit-rate set for the voice channel; + null if this is not mentioned in this entry. + + + + + Contains a piece of audit log data related to a channel update. + + + + + Gets the snowflake ID of the updated channel. + + + A representing the snowflake identifier for the updated channel. + + + + + Gets the channel information before the changes. + + + An information object containing the original channel information before the changes were made. + + + + + Gets the channel information after the changes. + + + An information object containing the channel information after the changes were made. + + + + + Contains a piece of audit log data related to an emoji creation. + + + + + Gets the snowflake ID of the created emoji. + + + A representing the snowflake identifier for the created emoji. + + + + + Gets the name of the created emoji. + + + A string containing the name of the created emoji. + + + + + Contains a piece of audit log data related to an emoji deletion. + + + + + Gets the snowflake ID of the deleted emoji. + + + A representing the snowflake identifier for the deleted emoji. + + + + + Gets the name of the deleted emoji. + + + A string containing the name of the deleted emoji. + + + + + Contains a piece of audit log data related to an emoji update. + + + + + Gets the snowflake ID of the updated emoji. + + + A representing the snowflake identifier of the updated emoji. + + + + + Gets the new name of the updated emoji. + + + A string containing the new name of the updated emoji. + + + + + Gets the old name of the updated emoji. + + + A string containing the old name of the updated emoji. + + + + + Represents information for a guild. + + + + + Gets the amount of time (in seconds) a user must be inactive in a voice channel for until they are + automatically moved to the AFK voice channel. + + + An representing the amount of time in seconds for a user to be marked as inactive + and moved into the AFK voice channel. + null if this is not mentioned in this entry. + + + + + Gets the default message notifications for users who haven't explicitly set their notification settings. + + + The default message notifications setting of this guild. + null if this is not mentioned in this entry. + + + + + Gets the ID of the AFK voice channel for this guild. + + + A representing the snowflake identifier of the AFK voice channel; null if + none is set. + + + + + Gets the name of this guild. + + + A string containing the name of this guild. + + + + + Gets the ID of the region hosting this guild's voice channels. + + + + + Gets the ID of this guild's icon. + + + A string containing the identifier for the splash image; null if none is set. + + + + + Gets the level of requirements a user must fulfill before being allowed to post messages in this guild. + + + The level of requirements. + null if this is not mentioned in this entry. + + + + + Gets the owner of this guild. + + + A user object representing the owner of this guild. + + + + + Gets the level of Multi-Factor Authentication requirements a user must fulfill before being allowed to + perform administrative actions in this guild. + + + The level of MFA requirement. + null if this is not mentioned in this entry. + + + + + Gets the level of content filtering applied to user's content in a Guild. + + + The level of explicit content filtering. + + + + + Gets the ID of the channel where system messages are sent. + + + A representing the snowflake identifier of the channel where system + messages are sent; null if none is set. + + + + + Gets the ID of the widget embed channel of this guild. + + + A representing the snowflake identifier of the embedded channel found within the + widget settings of this guild; null if none is set. + + + + + Gets a value that indicates whether this guild is embeddable (i.e. can use widget). + + + true if this guild can be embedded via widgets; otherwise false. + null if this is not mentioned in this entry. + + + + + Contains a piece of audit log data related to a guild update. + + + + + Gets the guild information before the changes. + + + An information object containing the original guild information before the changes were made. + + + + + Gets the guild information after the changes. + + + An information object containing the guild information after the changes were made. + + + + + Contains a piece of audit log data related to an invite creation. + + + + + Gets the time (in seconds) until the invite expires. + + + An representing the time in seconds until this invite expires. + + + + + Gets the unique identifier for this invite. + + + A string containing the invite code (e.g. FTqNnyS). + + + + + Gets a value that determines whether the invite is a temporary one. + + + true if users accepting this invite will be removed from the guild when they log off; otherwise + false. + + + + + Gets the user that created this invite if available. + + + A user that created this invite or . + + + + + Gets the ID of the channel this invite is linked to. + + + A representing the channel snowflake identifier that the invite points to. + + + + + Gets the number of times this invite has been used. + + + An representing the number of times this invite was used. + + + + + Gets the max number of uses this invite may have. + + + An representing the number of uses this invite may be accepted until it is removed + from the guild; null if none is set. + + + + + Contains a piece of audit log data related to an invite removal. + + + + + Gets the time (in seconds) until the invite expires. + + + An representing the time in seconds until this invite expires. + + + + + Gets the unique identifier for this invite. + + + A string containing the invite code (e.g. FTqNnyS). + + + + + Gets a value that indicates whether the invite is a temporary one. + + + true if users accepting this invite will be removed from the guild when they log off; otherwise + false. + + + + + Gets the user that created this invite if available. + + + A user that created this invite or . + + + + + Gets the ID of the channel this invite is linked to. + + + A representing the channel snowflake identifier that the invite points to. + + + + + Gets the number of times this invite has been used. + + + An representing the number of times this invite has been used. + + + + + Gets the max number of uses this invite may have. + + + An representing the number of uses this invite may be accepted until it is removed + from the guild; null if none is set. + + + + + Represents information for an invite. + + + + + Gets the time (in seconds) until the invite expires. + + + An representing the time in seconds until this invite expires; null if this + invite never expires or not specified. + + + + + Gets the unique identifier for this invite. + + + A string containing the invite code (e.g. FTqNnyS). + + + + + Gets a value that indicates whether the invite is a temporary one. + + + true if users accepting this invite will be removed from the guild when they log off, + false if not; null if not specified. + + + + + Gets the ID of the channel this invite is linked to. + + + A representing the channel snowflake identifier that the invite points to; + null if not specified. + + + + + Gets the max number of uses this invite may have. + + + An representing the number of uses this invite may be accepted until it is removed + from the guild; null if none is specified. + + + + + Contains a piece of audit log data relating to an invite update. + + + + + Gets the invite information before the changes. + + + An information object containing the original invite information before the changes were made. + + + + + Gets the invite information after the changes. + + + An information object containing the invite information after the changes were made. + + + + + Contains a piece of audit log data related to a kick. + + + + + Gets the user that was kicked. + + + A user object representing the kicked user. + + + + + Contains a piece of audit log data related to disconnecting members from voice channels. + + + + + Gets the number of members that were disconnected. + + + An representing the number of members that were disconnected from a voice channel. + + + + + Represents information for a member. + + + + + Gets the nickname of the updated member. + + + A string representing the nickname of the updated member; null if none is set. + + + + + Gets a value that indicates whether the updated member is deafened by the guild. + + + true if the updated member is deafened (i.e. not permitted to listen to or speak to others) by the guild; + otherwise false. + null if this is not mentioned in this entry. + + + + + Gets a value that indicates whether the updated member is muted (i.e. not permitted to speak via voice) by the + guild. + + + true if the updated member is muted by the guild; otherwise false. + null if this is not mentioned in this entry. + + + + + Contains a piece of audit log data related to moving members between voice channels. + + + + + Gets the ID of the channel that the members were moved to. + + + A representing the snowflake identifier for the channel that the members were moved to. + + + + + Gets the number of members that were moved. + + + An representing the number of members that were moved to another voice channel. + + + + + Contains a piece of audit log data related to a change in a guild member's roles. + + + + + Gets a collection of role changes that were performed on the member. + + + A read-only collection of , containing the roles that were changed on + the member. + + + + + Gets the user that the roles changes were performed on. + + + A user object representing the user that the role changes were performed on. + + + + + An information object representing a change in one of a guild member's roles. + + + + + Gets the name of the role that was changed. + + + A string containing the name of the role that was changed. + + + + + Gets the ID of the role that was changed. + + + A representing the snowflake identifier of the role that was changed. + + + + + Gets a value that indicates whether the role was added to the user. + + + true if the role was added to the user; otherwise false. + + + + + Contains a piece of audit log data related to a change in a guild member. + + + + + Gets the user that the changes were performed on. + + + A user object representing the user who the changes were performed on. + + + + + Gets the member information before the changes. + + + An information object containing the original member information before the changes were made. + + + + + Gets the member information after the changes. + + + An information object containing the member information after the changes were made. + + + + + Contains a piece of audit log data related to message deletion(s). + + + + + Gets the ID of the channel that the messages were deleted from. + + + A representing the snowflake identifier for the channel that the messages were + deleted from. + + + + + Gets the number of messages that were deleted. + + + An representing the number of messages that were deleted from the channel. + + + + + Contains a piece of audit log data related to message deletion(s). + + + + + Gets the number of messages that were deleted. + + + An representing the number of messages that were deleted from the channel. + + + + + Gets the ID of the channel that the messages were deleted from. + + + A representing the snowflake identifier for the channel that the messages were + deleted from. + + + + + Gets the user of the messages that were deleted. + + + A user object representing the user that created the deleted messages. + + + + + Contains a piece of audit log data related to a pinned message. + + + + + Gets the ID of the messages that was pinned. + + + A representing the snowflake identifier for the messages that was pinned. + + + + + Gets the ID of the channel that the message was pinned from. + + + A representing the snowflake identifier for the channel that the message was pinned from. + + + + + Gets the user of the message that was pinned. + + + A user object representing the user that created the pinned message. + + + + + Contains a piece of audit log data related to an unpinned message. + + + + + Gets the ID of the messages that was unpinned. + + + A representing the snowflake identifier for the messages that was unpinned. + + + + + Gets the ID of the channel that the message was unpinned from. + + + A representing the snowflake identifier for the channel that the message was unpinned from. + + + + + Gets the user of the message that was unpinned. + + + A user object representing the user that created the unpinned message. + + + + + Contains a piece of audit log data for a permissions overwrite creation. + + + + + Gets the ID of the channel that the overwrite was created from. + + + A representing the snowflake identifier for the channel that the overwrite was + created from. + + + + + Gets the permission overwrite object that was created. + + + An object representing the overwrite that was created. + + + + + Contains a piece of audit log data related to the deletion of a permission overwrite. + + + + + Gets the ID of the channel that the overwrite was deleted from. + + + A representing the snowflake identifier for the channel that the overwrite was + deleted from. + + + + + Gets the permission overwrite object that was deleted. + + + An object representing the overwrite that was deleted. + + + + + Contains a piece of audit log data related to the update of a permission overwrite. + + + + + Gets the ID of the channel that the overwrite was updated from. + + + A representing the snowflake identifier for the channel that the overwrite was + updated from. + + + + + Gets the overwrite permissions before the changes. + + + An overwrite permissions object representing the overwrite permissions that the overwrite had before + the changes were made. + + + + + Gets the overwrite permissions after the changes. + + + An overwrite permissions object representing the overwrite permissions that the overwrite had after the + changes. + + + + + Gets the ID of the overwrite that was updated. + + + A representing the snowflake identifier of the overwrite that was updated. + + + + + Gets the target of the updated permission overwrite. + + + The target of the updated permission overwrite. + + + + + Contains a piece of audit log data related to a guild prune. + + + + + Gets the threshold for a guild member to not be kicked. + + + An representing the amount of days that a member must have been seen in the server, + to avoid being kicked. (i.e. If a user has not been seen for more than , they will be + kicked from the server) + + + + + Gets the number of members that were kicked during the purge. + + + An representing the number of members that were removed from this guild for having + not been seen within . + + + + + Contains a piece of audit log data related to a role creation. + + + + + Gets the ID of the role that was created. + + + A representing the snowflake identifier to the role that was created. + + + + + Gets the role information that was created. + + + An information object representing the properties of the role that was created. + + + + + Contains a piece of audit log data relating to a role deletion. + + + + + Gets the ID of the role that was deleted. + + + A representing the snowflake identifier to the role that was deleted. + + + + + Gets the role information that was deleted. + + + An information object representing the properties of the role that was deleted. + + + + + Represents information for a role edit. + + + + + Gets the color of this role. + + + A color object representing the color assigned to this role; null if this role does not have a + color. + + + + + Gets a value that indicates whether this role is mentionable. + + + true if other members can mention this role in a text channel; otherwise false; + null if this is not mentioned in this entry. + + + + + Gets a value that indicates whether this role is hoisted (i.e. its members will appear in a separate + section on the user list). + + + true if this role's members will appear in a separate section in the user list; otherwise + false; null if this is not mentioned in this entry. + + + + + Gets the name of this role. + + + A string containing the name of this role. + + + + + Gets the permissions assigned to this role. + + + A guild permissions object representing the permissions that have been assigned to this role; null + if no permissions have been assigned. + + + + + Contains a piece of audit log data related to a role update. + + + + + Gets the ID of the role that was changed. + + + A representing the snowflake identifier of the role that was changed. + + + + + Gets the role information before the changes. + + + A role information object containing the role information before the changes were made. + + + + + Gets the role information after the changes. + + + A role information object containing the role information after the changes were made. + + + + + Contains a piece of audit log data related to an unban. + + + + + Gets the user that was unbanned. + + + A user object representing the user that was unbanned. + + + + + Contains a piece of audit log data related to a webhook creation. + + + + + Gets the webhook that was created if it still exists. + + + A webhook object representing the webhook that was created if it still exists, otherwise returns null. + + + + + Gets the webhook id. + + + The webhook identifier. + + + + + Gets the type of webhook that was created. + + + The type of webhook that was created. + + + + + Gets the name of the webhook. + + + A string containing the name of the webhook. + + + + + Gets the ID of the channel that the webhook could send to. + + + A representing the snowflake identifier of the channel that the webhook could send + to. + + + + + Contains a piece of audit log data related to a webhook deletion. + + + + + Gets the ID of the webhook that was deleted. + + + A representing the snowflake identifier of the webhook that was deleted. + + + + + Gets the ID of the channel that the webhook could send to. + + + A representing the snowflake identifier of the channel that the webhook could send + to. + + + + + Gets the type of the webhook that was deleted. + + + The type of webhook that was deleted. + + + + + Gets the name of the webhook that was deleted. + + + A string containing the name of the webhook that was deleted. + + + + + Gets the hash value of the webhook's avatar. + + + A string containing the hash of the webhook's avatar. + + + + + Represents information for a webhook. + + + + + Gets the name of this webhook. + + + A string containing the name of this webhook. + + + + + Gets the ID of the channel that this webhook sends to. + + + A representing the snowflake identifier of the channel that this webhook can send + to. + + + + + Gets the hash value of this webhook's avatar. + + + A string containing the hash of this webhook's avatar. + + + + + Contains a piece of audit log data related to a webhook update. + + + + + Gets the webhook that was updated. + + + A webhook object representing the webhook that was updated. + + + + + Gets the webhook information before the changes. + + + A webhook information object representing the webhook before the changes were made. + + + + + Gets the webhook information after the changes. + + + A webhook information object representing the webhook after the changes were made. + + + + + Represents a REST-based audit log entry. + + + + + + + + + + + + + + + + + + + + may not be equal to zero. + -and- + and must be greater than zero. + -and- + must be lesser than 86400. + + + + Message content is too long, length must be less or equal to . + + + + is a zero-length string, contains only white space, or contains one or more + invalid characters as defined by . + + + is null. + + + The specified path, file name, or both exceed the system-defined maximum length. For example, on + Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 + characters. + + + The specified path is invalid, (for example, it is on an unmapped drive). + + + specified a directory.-or- The caller does not have the required permission. + + + The file specified in was not found. + + is in an invalid format. + An I/O error occurred while opening the file. + Message content is too long, length must be less or equal to . + + + Message content is too long, length must be less or equal to . + + + Resolving permissions requires the parent guild to be downloaded. + + + Resolving permissions requires the parent guild to be downloaded. + + + This channel does not have a parent channel. + + + + Represents a REST-based channel that can send and receive messages. + + + + + Sends a message to this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The message to be sent. + Determines whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + This method follows the same behavior as described in + . Please visit + its documentation for more details on this method. + + The file path of the file. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The of the file to be sent. + The name of the attachment. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Gets a message from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The snowflake identifier of the message. + The options to be used when sending the request. + + A task that represents an asynchronous get operation for retrieving the message. The task result contains + the retrieved message; null if no message is found with the specified identifier. + + + + + Gets the last N messages from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The ID of the starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of pinned messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation for retrieving pinned messages in this channel. + The task result contains a collection of messages found in the pinned messages. + + + + + Represents a REST-based channel that is private to select recipients. + + + + + Users that can access this channel. + + + + + Represents a REST-based category channel. + + + + + This method is not supported with category channels. + + + + This method is not supported with category channels. + + + + Represents a generic REST-based channel. + + + + + + + Unexpected channel type. + + + Unexpected channel type. + + + + + + + + + + + + + + + + Represents a REST-based direct-message channel. + + + + + Gets the current logged-in user. + + + + + Gets the recipient of the channel. + + + + + Gets a collection that is the current logged-in user and the recipient. + + + + + + + + + + + Gets a user in this channel from the provided . + + The snowflake identifier of the user. + + A object that is a recipient of this channel; otherwise null. + + + + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + is a zero-length string, contains only white space, or contains one or more + invalid characters as defined by . + + + is null. + + + The specified path, file name, or both exceed the system-defined maximum length. For example, on + Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 + characters. + + + The specified path is invalid, (for example, it is on an unmapped drive). + + + specified a directory.-or- The caller does not have the required permission. + + + The file specified in was not found. + + is in an invalid format. + An I/O error occurred while opening the file. + Message content is too long, length must be less or equal to . + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + Gets a string that represents the Username#Discriminator of the recipient. + + + A string that resolves to the Recipient of this channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST-based group-message channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + is a zero-length string, contains only white space, or contains one or more + invalid characters as defined by . + + + is null. + + + The specified path, file name, or both exceed the system-defined maximum length. For example, on + Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 + characters. + + + The specified path is invalid, (for example, it is on an unmapped drive). + + + specified a directory.-or- The caller does not have the required permission. + + + The file specified in was not found. + + is in an invalid format. + An I/O error occurred while opening the file. + Message content is too long, length must be less or equal to . + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + Connecting to a group channel is not supported. + + + + Represents a private REST-based group channel. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the permission overwrite for a specific user. + + The user to get the overwrite from. + + An overwrite object for the targeted user; null if none is set. + + + + + Gets the permission overwrite for a specific role. + + The role to get the overwrite from. + + An overwrite object for the targeted role; null if none is set. + + + + + Adds or updates the permission overwrite for the given user. + + The user to add the overwrite to. + The overwrite to add to the user. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the channel. + + + + + Adds or updates the permission overwrite for the given role. + + The role to add the overwrite to. + The overwrite to add to the role. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the channel. + + + + + Removes the permission overwrite for the given user, if one exists. + + The user to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Removes the permission overwrite for the given role, if one exists. + + The role to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Gets the name of this channel. + + + A string that is the name of this channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST-based news channel in a guild that has the same properties as a . + + + + + Represents a REST-based channel in a guild that can send and receive messages. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a user in this channel. + + The snowflake identifier of the user. + The options to be used when sending the request. + + Resolving permissions requires the parent guild to be downloaded. + + + A task representing the asynchronous get operation. The task result contains a guild user object that + represents the user; null if none is found. + + + + + Gets a collection of users that are able to view the channel. + + The options to be used when sending the request. + + Resolving permissions requires the parent guild to be downloaded. + + + A paged collection containing a collection of guild users that can access this channel. Flattening the + paginated response into a collection of users with + is required if you wish to access the users. + + + + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + is a zero-length string, contains only white space, or contains one or more + invalid characters as defined by . + + + is null. + + + The specified path, file name, or both exceed the system-defined maximum length. For example, on + Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 + characters. + + + The specified path is invalid, (for example, it is on an unmapped drive). + + + specified a directory.-or- The caller does not have the required permission. + + + The file specified in was not found. + + is in an invalid format. + An I/O error occurred while opening the file. + Message content is too long, length must be less or equal to . + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + + + + + + + Creates a webhook in this text channel. + + The name of the webhook. + The avatar of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + webhook. + + + + + Gets a webhook available in this text channel. + + The identifier of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a webhook associated + with the identifier; null if the webhook is not found. + + + + + Gets the webhooks available in this text channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks that is available in this channel. + + + + + Gets the parent (category) channel of this channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the category channel + representing the parent of this channel; null if none is set. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST-based voice channel in a guild. + + + + + + + + + + + + + + + + + + + + Gets the parent (category) channel of this channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the category channel + representing the parent of this channel; null if none is set. + + + + + + + + + + + + + + Connecting to a REST-based channel is not supported. + + + + + + + + + + + + is null. + + + is null. + + + is null. + + + is null. + + + is null. + + + is null. + + + is null. + + + is null. + + + + Represents a REST-based ban object. + + + + + Gets the banned user. + + + A generic object that was banned. + + + + + + + + Gets the name of the banned user. + + + A string containing the name of the user that was banned. + + + + + + + + Represents a REST-based guild/server. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the built-in role containing all users in this guild. + + + + + Gets a collection of all roles in this guild. + + + + + + + + + + + + + + Updates this object's properties with its current state. + + + If true, and + will be updated as well. + + The options to be used when sending the request. + + If is true, and + will be updated as well. + + + + + + + + is . + + + + is . + + + + is . + + + + is . + + + + + + + + + + Gets a collection of all users banned in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + ban objects that this guild currently possesses, with each object containing the user banned and reason + behind the ban. + + + + + Gets a ban object for a banned user. + + The banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + Gets a ban object for a banned user. + + The snowflake identifier for the banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + + + + + + + + + + + + + Gets a collection of all channels in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + generic channels found within this guild. + + + + + Gets a channel in this guild. + + The snowflake identifier for the channel. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the generic channel + associated with the specified ; if none is found. + + + + + Gets a text channel in this guild. + + The snowflake identifier for the text channel. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel + associated with the specified ; if none is found. + + + + + Gets a collection of all text channels in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + message channels found within this guild. + + + + + Gets a voice channel in this guild. + + The snowflake identifier for the voice channel. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the voice channel associated + with the specified ; if none is found. + + + + + Gets a collection of all voice channels in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + voice channels found within this guild. + + + + + Gets a collection of all category channels in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + category channels found within this guild. + + + + + Gets the AFK voice channel in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the voice channel that the + AFK users will be moved to after they have idled for too long; if none is set. + + + + + Gets the first viewable text channel in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the first viewable text + channel in this guild; if none is found. + + + + + Gets the embed channel (i.e. the channel set in the guild's widget settings) in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the embed channel set + within the server's widget settings; if none is set. + + + + + Gets the widget channel (i.e. the channel set in the guild's widget settings) in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the widget channel set + within the server's widget settings; if none is set. + + + + + Gets the text channel where guild notices such as welcome messages and boost events are posted. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel + where guild notices such as welcome messages and boost events are poste; if none is found. + + + + + Gets the text channel where Community guilds can display rules and/or guidelines. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel + where Community guilds can display rules and/or guidelines; if none is set. + + + + + Gets the text channel channel where admins and moderators of Community guilds receive notices from Discord. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the text channel channel where + admins and moderators of Community guilds receive notices from Discord; if none is set. + + + + + Creates a new text channel in this guild. + + + The following example creates a new text channel under an existing category named Wumpus with a set topic. + + var categories = await guild.GetCategoriesAsync(); + var targetCategory = categories.FirstOrDefault(x => x.Name == "wumpus"); + if (targetCategory == null) return; + await Context.Guild.CreateTextChannelAsync(name, x => + { + x.CategoryId = targetCategory.Id; + x.Topic = $"This channel was created at {DateTimeOffset.UtcNow} by {user}."; + }); + + + The new name for the text channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + text channel. + + + + + Creates a voice channel with the provided name. + + The name of the new channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + is . + + The created voice channel. + + + + + Creates a category channel with the provided name. + + The name of the new channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + is . + + The created category channel. + + + + + Gets a collection of all the voice regions this guild can access. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + voice regions the guild can access. + + + + + Gets a collection of all invites in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + invite metadata, each representing information for an invite found within this guild. + + + + + Gets the vanity invite URL of this guild. + + The options to be used when sending the request. + + A partial metadata of the vanity invite found within this guild. + + + + + Gets a role in this guild. + + The snowflake identifier for the role. + + A role that is associated with the specified ; if none is found. + + + + + + + + Creates a new role with the provided name. + + The new name for the role. + The guild permission that the role should possess. + The color of the role. + Whether the role is separated from others on the sidebar. + The options to be used when sending the request. + Whether the role can be mentioned. + + A task that represents the asynchronous creation operation. The task result contains the newly created + role. + + + + + Gets a collection of all users in this guild. + + + This method retrieves all users found within this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users found within this guild. + + + + + + + + Gets a user from this guild. + + + This method retrieves a user found within this guild. + + The snowflake identifier of the user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the guild user + associated with the specified ; if none is found. + + + + + Gets the current user for this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the currently logged-in + user within this guild. + + + + + Gets the owner of this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the owner of this guild. + + + + + + Prunes inactive users. + + + + This method removes all users that have not logged on in the provided number of . + + + If is true, this method will only return the number of users that + would be removed without kicking the users. + + + The number of days required for the users to be kicked. + Whether this prune action is a simulation. + The options to be used when sending the request. + + A task that represents the asynchronous prune operation. The task result contains the number of users to + be or has been removed from this guild. + + + + + Gets a collection of users in this guild that the name or nickname starts with the + provided at . + + + The can not be higher than . + + The partial name or nickname to search. + The maximum number of users to be gotten. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users that the name or nickname starts with the provided at . + + + + + Gets the specified number of audit log entries for this guild. + + The number of audit log entries to fetch. + The options to be used when sending the request. + The audit log entry ID to get entries before. + The type of actions to filter. + The user ID to filter entries for. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of the requested audit log entries. + + + + + Gets a webhook found within this guild. + + The identifier for the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the webhook with the + specified ; if none is found. + + + + + Gets a collection of all webhook from this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks found within the guild. + + + + + Returns the name of the guild. + + + The name of the guild. + + + + + + + + + + + is . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Downloading users is not supported for a REST-based guild. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST-based voice region. + + + + + + + + + + + + + + + + + + + + Represents a Rest-based implementation of the . + + + + + + + + + + + + + + The options of this command. + + + + + The type of this rest application command. + + + + + + + + Represents a Rest-based implementation of . + + + + + + + + + + + Represents a Rest-based implementation of . + + + + + + + + + + + + + + + + + + + + A collection of 's for this command. + + + + + A collection of 's for this command. + + + + + Represents a type of Rest-based command. + + + + + Specifies that this command is a Global command. + + + + + Specifies that this command is a Guild specific command. + + + + + Represents a global Slash command. + + + + + + + + Modifies this . + + The delegate containing the properties to modify the command with. + The options to be used when sending the request. + + The modified command. + + + + + Represents a Rest-based guild command. + + + + + The guild Id where this command originates. + + + + + + + + Modifies this . + + The delegate containing the properties to modify the command with. + The options to be used when sending the request. + + The modified command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the URL of the invite. + + + A string that resolves to the Url of the invite. + + + + + + + + + + Represents additional information regarding the REST-based invite object. + + + + + + + + + + + + + + + + + + + Gets the user that created this invite. + + + + + + + + + + + Regex used to check if some text is formatted as inline code. + + + + + Regex used to check if some text is formatted as a code block. + + + + Only the author of a message may modify the message. + Message content is too long, length must be less or equal to . + + + + Represents a REST-based follow up message sent by a bot responding to a slash command. + + + + + Deletes this object and all of it's childern. + + A task that represents the asynchronous delete operation. + + + + Modifies this interaction followup message. + + + This method modifies this message with the specified properties. To see an example of this + method and what properties are available, please refer to . + + + The following example replaces the content of the message with Hello World!. + + await msg.ModifyAsync(x => x.Content = "Hello World!"); + + + A delegate containing the properties to modify the message with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + The token used to modify/delete this message expired. + /// Somthing went wrong during the request. + + + + Represents the initial REST-based response to a slash command. + + + + + Deletes this object and all of it's childern. + + A task that represents the asynchronous delete operation. + + + + Modifies this interaction response + + + This method modifies this message with the specified properties. To see an example of this + method and what properties are available, please refer to . + + + The following example replaces the content of the message with Hello World!. + + await msg.ModifyAsync(x => x.Content = "Hello World!"); + + + A delegate containing the properties to modify the message with. + The options to be used when sending the request. + + A task that represents the asynchronous modification operation. + + The token used to modify/delete this message expired. + /// Somthing went wrong during the request. + + + + Represents a REST-based message. + + + + + + + + Gets the Author of the message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of the 's on the message. + + + + + Gets a collection of the 's on the message. + + + + + + + + + + + Gets a collection of the mentioned users in the message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the of the message. + + + A string that is the of the message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST reaction object. + + + + + + + + Gets the number of reactions added. + + + + + Gets whether the reactions is added by the user. + + + + + Represents a REST-based system message. + + + + + + + + Represents a REST-based message sent by a user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This operation may only be called on a channel. + + + + Represents a REST-based entity that contains information about a Discord application created via the developer portal. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unable to update this object from a different application token. + + + + Gets the name of the application. + + + Name of the application. + + + + + Represents a REST-based role. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets if this role is the @everyone role of the guild or not. + + + + + + + + + + + + + + + + + Gets the name of the role. + + + A string that is the name of the role. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the name of the connection. + + + Name of the connection. + + + + + Represents a REST-based group user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a REST-based guild user. + + + + + + + + + + + + + + + + + + + + Resolving permissions requires the parent guild to be downloaded. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resolving permissions requires the parent guild to be downloaded. + + + + + + + + + + + + + + + + + + + + + + + + + Represents the logged-in REST-based user. + + + + + + + + + + + + + + + + + + + + + + + + + + Unable to update this object using a different token. + + + + Unable to modify this object using a different token. + + + + Represents a REST-based user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a direct message channel to this user, or create one if it does not already exist. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a rest DM channel where the user is the recipient. + + + + + + + + + + + Gets the Username#Discriminator of the user. + + + A string that resolves to Username#Discriminator of the user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a user to the specified guild. + + + This method requires you have an OAuth2 access token for the user, requested with the guilds.join scope, and that the bot have the MANAGE_INVITES permission in the guild. + + The Discord client object. + The snowflake identifier of the guild. + The snowflake identifier of the user. + The OAuth2 access token for the user, requested with the guilds.join scope. + The delegate containing the properties to be applied to the user upon being added to the guild. + The options to be used when sending the request. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the filename of this attachment. + + + A string containing the filename of this attachment. + + + + diff --git a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj index b09197875..ebd0dd257 100644 --- a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj +++ b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj @@ -8,12 +8,15 @@ net461;netstandard2.0;netstandard2.1 netstandard2.0;netstandard2.1 true - 2.3.6 + 2.3.7 https://github.com/Discord-Net-Labs/Discord.Net-Labs https://github.com/Discord-Net-Labs/Discord.Net-Labs Temporary.png Discord.Net.Labs.WebSocket + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.WebSocket\Discord.Net.WebSocket.xml + diff --git a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml new file mode 100644 index 000000000..4e9113a97 --- /dev/null +++ b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml @@ -0,0 +1,4607 @@ + + + + Discord.Net.WebSocket + + + + C←S - Used to send most events. + + + C↔S - Used to keep the connection alive and measure latency. + + + C→S - Used to associate a connection with a token and specify configuration. + + + C→S - Used to update client's status and current game id. + + + C→S - Used to join a particular voice channel. + + + C→S - Used to ensure the guild's voice server is alive. + + + C→S - Used to resume a connection after a redirect occurs. + + + C←S - Used to notify a client that they must reconnect to another gateway. + + + C→S - Used to request members that were withheld by large_threshold + + + C←S - Used to notify the client that their session has expired and cannot be resumed. + + + C←S - Used to provide information to the client immediately on connection. + + + C←S - Used to reply to a client's heartbeat. + + + C→S - Used to request presence updates from particular guilds. + + + C→S - Used to associate a connection with a token. + + + C→S - Used to specify configuration. + + + C←S - Used to notify that the voice connection was successful and informs the client of available protocols. + + + C→S - Used to keep the connection alive and measure latency. + + + C←S - Used to provide an encryption key to the client. + + + C↔S - Used to inform that a certain user is speaking. + + + C←S - Used to reply to a client's heartbeat. + + + C→S - Used to resume a connection. + + + C←S - Used to inform the client the heartbeat interval. + + + C←S - Used to acknowledge a resumed connection. + + + C←S - Used to notify that a client has disconnected. + + + The client must be logged in before connecting. + This client is not configured with WebSocket support. + + + This client is not configured with WebSocket support. + + + Creates a new REST/WebSocket discord client. + + + + + + Wraps another stream with a timed buffer. + + + Reads the payload from an RTP frame + + + Converts Opus to PCM + + + Header received with no payload. + + + Received payload without an RTP header. + + + Converts PCM to Opus + + + Wraps an IAudioClient, sending voice data on write. + + + Reads the payload from an RTP frame + + + The token has had cancellation requested. + The associated has been disposed. + + + Wraps data in an RTP frame + + + + Decrypts an RTP frame using libsodium. + + + + + Encrypts an RTP frame using libsodium. + + + + Header received with no payload. + + + Received payload without an RTP header. + The token has had cancellation requested. + The associated has been disposed. + + + + Represents the base of a WebSocket-based Discord client. + + + + + Gets the estimated round-trip latency, in milliseconds, to the gateway server. + + + An that represents the round-trip latency to the WebSocket server. Please + note that this value does not represent a "true" latency for operations such as sending a message. + + + + + Gets the status for the logged-in user. + + + A status object that represents the user's online presence status. + + + + + Gets the activity for the logged-in user. + + + An activity object that represents the user's current activity. + + + + + Provides access to a REST-only client with a shared state from this client. + + + + + Gets the current logged-in user. + + + + + Gets a collection of guilds that the user is currently in. + + + A read-only collection of guilds that the current user is in. + + + + + Gets a collection of private channels opened in this session. + + + This method will retrieve all private channels (including direct-message, group channel and such) that + are currently opened in this session. + + This method will not return previously opened private channels outside of the current session! If + you have just started the client, this may return an empty collection. + + + + A read-only collection of private channels that the user currently partakes in. + + + + + Gets a collection of available voice regions. + + + A read-only collection of voice regions that the user has access to. + + + + + Gets a Discord application information for the logged-in user. + + + This method reflects your application information you submitted when creating a Discord application via + the Developer Portal. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the application + information. + + + + + Gets a generic user. + + The user snowflake ID. + + This method gets the user present in the WebSocket cache with the given condition. + + Sometimes a user may return null due to Discord not sending offline users in large guilds + (i.e. guild with 100+ members) actively. To download users on startup and to see more information + about this subject, see . + + + This method does not attempt to fetch users that the logged-in user does not have access to (i.e. + users who don't share mutual guild(s) with the current user). If you wish to get a user that you do + not have access to, consider using the REST implementation of + . + + + + A generic WebSocket-based user; null when the user cannot be found. + + + + + Gets a user. + + + This method gets the user present in the WebSocket cache with the given condition. + + Sometimes a user may return null due to Discord not sending offline users in large guilds + (i.e. guild with 100+ members) actively. To download users on startup and to see more information + about this subject, see . + + + This method does not attempt to fetch users that the logged-in user does not have access to (i.e. + users who don't share mutual guild(s) with the current user). If you wish to get a user that you do + not have access to, consider using the REST implementation of + . + + + The name of the user. + The discriminator value of the user. + + A generic WebSocket-based user; null when the user cannot be found. + + + + + Gets a channel. + + The snowflake identifier of the channel (e.g. `381889909113225237`). + + A generic WebSocket-based channel object (voice, text, category, etc.) associated with the identifier; + null when the channel cannot be found. + + + + + Gets a guild. + + The guild snowflake identifier. + + A WebSocket-based guild associated with the snowflake identifier; null when the guild cannot be + found. + + + + + Gets a voice region. + + The identifier of the voice region (e.g. eu-central ). + + A REST-based voice region associated with the identifier; null if the voice region is not + found. + + + + + + + + + + + Sets the current status of the user (e.g. Online, Do not Disturb). + + The new status to be set. + + A task that represents the asynchronous set operation. + + + + + Sets the game of the user. + + The name of the game. + If streaming, the URL of the stream. Must be a valid Twitch URL. + The type of the game. + + A task that represents the asynchronous set operation. + + + + + Sets the of the logged-in user. + + + This method sets the of the user. + + Discord will only accept setting of name and the type of activity. + + + Rich Presence cannot be set via this method or client. Rich Presence is strictly limited to RPC + clients only. + + + The activity to be set. + + A task that represents the asynchronous set operation. + + + + + Attempts to download users into the user cache for the selected guilds. + + The guilds to download the members from. + + A task that represents the asynchronous download operation. + + + + + Creates a guild for the logged-in user who is in less than 10 active guilds. + + + This method creates a new guild on behalf of the logged-in user. + + Due to Discord's limitation, this method will only work for users that are in less than 10 guilds. + + + The name of the new guild. + The voice region to create the guild with. + The icon of the guild. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the created guild. + + + + + Gets the connections that the user has set up. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of connections. + + + + + Gets an invite. + + The invitation identifier. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the invite information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fired when a channel is created. + + + This event is fired when a generic channel has been created. The event handler must return a + and accept a as its parameter. + + + The newly created channel is passed into the event handler parameter. The given channel type may + include, but not limited to, Private Channels (DM, Group), Guild Channels (Text, Voice, Category); + see the derived classes of for more details. + + + + + + + + Fired when a channel is destroyed. + + + This event is fired when a generic channel has been destroyed. The event handler must return a + and accept a as its parameter. + + + The destroyed channel is passed into the event handler parameter. The given channel type may + include, but not limited to, Private Channels (DM, Group), Guild Channels (Text, Voice, Category); + see the derived classes of for more details. + + + + + + + + Fired when a channel is updated. + + + This event is fired when a generic channel has been destroyed. The event handler must return a + and accept 2 as its parameters. + + + The original (prior to update) channel is passed into the first , while + the updated channel is passed into the second. The given channel type may include, but not limited + to, Private Channels (DM, Group), Guild Channels (Text, Voice, Category); see the derived classes of + for more details. + + + + + + + + Fired when a message is received. + + + This event is fired when a message is received. The event handler must return a + and accept a as its parameter. + + + The message that is sent to the client is passed into the event handler parameter as + . This message may be a system message (i.e. + ) or a user message (i.e. . See the + derived classes of for more details. + + + + The example below checks if the newly received message contains the target user. + + + + + Fired when a message is deleted. + + + This event is fired when a message is deleted. The event handler must return a + and accept a and + as its parameters. + + + + It is not possible to retrieve the message via + ; the message cannot be retrieved by Discord + after the message has been deleted. + + If caching is enabled via , the + entity will contain the deleted message; otherwise, in event + that the message cannot be retrieved, the snowflake ID of the message is preserved in the + . + + + The source channel of the removed message will be passed into the + parameter. + + + + + + + + Fired when multiple messages are bulk deleted. + + + The event will not be fired for individual messages contained in this event. + + + This event is fired when multiple messages are bulk deleted. The event handler must return a + and accept an and + as its parameters. + + + + It is not possible to retrieve the message via + ; the message cannot be retrieved by Discord + after the message has been deleted. + + If caching is enabled via , the + entity will contain the deleted message; otherwise, in event + that the message cannot be retrieved, the snowflake ID of the message is preserved in the + . + + + The source channel of the removed message will be passed into the + parameter. + + + + + Fired when a message is updated. + + + This event is fired when a message is updated. The event handler must return a + and accept a , , + and as its parameters. + + + If caching is enabled via , the + entity will contain the original message; otherwise, in event + that the message cannot be retrieved, the snowflake ID of the message is preserved in the + . + + + The updated message will be passed into the parameter. + + + The source channel of the updated message will be passed into the + parameter. + + + + + Fired when a reaction is added to a message. + + + This event is fired when a reaction is added to a user message. The event handler must return a + and accept a , an + , and a as its parameter. + + + If caching is enabled via , the + entity will contain the original message; otherwise, in event + that the message cannot be retrieved, the snowflake ID of the message is preserved in the + . + + + The source channel of the reaction addition will be passed into the + parameter. + + + The reaction that was added will be passed into the parameter. + + + When fetching the reaction from this event, a user may not be provided under + . Please see the documentation of the property for more + information. + + + + + + + + Fired when a reaction is removed from a message. + + + Fired when all reactions to a message are cleared. + + + + Fired when all reactions to a message with a specific emote are removed. + + + + This event is fired when all reactions to a message with a specific emote are removed. + The event handler must return a and accept a and + a as its parameters. + + + The channel where this message was sent will be passed into the parameter. + + + The emoji that all reactions had and were removed will be passed into the parameter. + + + + + Fired when a role is created. + + + Fired when a role is deleted. + + + Fired when a role is updated. + + + Fired when the connected account joins a guild. + + + Fired when the connected account leaves a guild. + + + Fired when a guild becomes available. + + + Fired when a guild becomes unavailable. + + + Fired when offline guild members are downloaded. + + + Fired when a guild is updated. + + + Fired when a user joins a guild. + + + Fired when a user leaves a guild. + + + Fired when a user is banned from a guild. + + + Fired when a user is unbanned from a guild. + + + Fired when a user is updated. + + + Fired when a guild member is updated, or a member presence is updated. + + + Fired when a user joins, leaves, or moves voice channels. + + + Fired when the bot connects to a Discord voice server. + + + Fired when the connected account is updated. + + + Fired when a user starts typing. + + + Fired when a user joins a group channel. + + + Fired when a user is removed from a group channel. + + + + Fired when an invite is created. + + + + This event is fired when an invite is created. The event handler must return a + and accept a as its parameter. + + + The invite created will be passed into the parameter. + + + + + + Fired when an invite is deleted. + + + + This event is fired when an invite is deleted. The event handler must return + a and accept a and + as its parameter. + + + The channel where this invite was created will be passed into the parameter. + + + The code of the deleted invite will be passed into the parameter. + + + + + + Fired when an Interaction is created. + + + + This event is fired when an interaction is created. The event handler must return a + and accept a as its parameter. + + + The interaction created will be passed into the parameter. + + + + + + Fired when a guild application command is created. + + + + This event is fired when an application command is created. The event handler must return a + and accept a as its parameter. + + + The command that was deleted will be passed into the parameter. + + + This event is an undocumented discord event and may break at any time, its not recommended to rely on this event + + + + + + Fired when a guild application command is updated. + + + + This event is fired when an application command is updated. The event handler must return a + and accept a as its parameter. + + + The command that was deleted will be passed into the parameter. + + + This event is an undocumented discord event and may break at any time, its not recommended to rely on this event + + + + + + Fired when a guild application command is deleted. + + + + This event is fired when an application command is deleted. The event handler must return a + and accept a as its parameter. + + + The command that was deleted will be passed into the parameter. + + + This event is an undocumented discord event and may break at any time, its not recommended to rely on this event + + + + + + + + + + + + + + + + + + + + + + + + Provides access to a REST-only client with a shared state from this client. + + + + Creates a new REST/WebSocket Discord client. + + + Creates a new REST/WebSocket Discord client. + + + Creates a new REST/WebSocket Discord client. + + + Creates a new REST/WebSocket Discord client. + + + + + + + + + + + + + + + + + + + + + + + + + + + + is + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fired when a shard is connected to the Discord gateway. + + + Fired when a shard is disconnected from the Discord gateway. + + + Fired when a guild data for a shard has finished downloading. + + + Fired when a shard receives a heartbeat from the Discord gateway. + + + + Represents a WebSocket-based Discord client. + + + + + Provides access to a REST-only client with a shared state from this client. + + + + Gets the shard of of this client. + + + Gets the current connection state of this client. + + + + + + + + + + + + + + + + + + + Gets a collection of direct message channels opened in this session. + + + This method returns a collection of currently opened direct message channels. + + This method will not return previously opened DM channels outside of the current session! If you + have just started the client, this may return an empty collection. + + + + A collection of DM channels that have been opened in this session. + + + + + Gets a collection of group channels opened in this session. + + + This method returns a collection of currently opened group channels. + + This method will not return previously opened group channels outside of the current session! If you + have just started the client, this may return an empty collection. + + + + A collection of group channels that have been opened in this session. + + + + + + + + Initializes a new REST/WebSocket-based Discord client. + + + + + Initializes a new REST/WebSocket-based Discord client with the provided configuration. + + The configuration to be used with the client. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clears all cached channels from the client. + + + + + Clears cached DM channels from the client. + + + + + + + + + + + Clears cached users from the client. + + + + + + + + + + + + The following example sets the status of the current user to Do Not Disturb. + + await client.SetStatusAsync(UserStatus.DoNotDisturb); + + + + + + + + The following example sets the activity of the current user to the specified game name. + + await client.SetGameAsync("A Strange Game"); + + + + The following example sets the activity of the current user to a streaming status. + + await client.SetGameAsync("Great Stream 10/10", "https://twitch.tv/MyAmazingStream1337", ActivityType.Streaming); + + + + + + + + + Unexpected channel type is created. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fired when connected to the Discord gateway. + + + Fired when disconnected to the Discord gateway. + + + + Fired when guild data has finished downloading. + + + It is possible that some guilds might be unsynced if + was not long enough to receive all GUILD_AVAILABLEs before READY. + + + + Fired when a heartbeat is received from the Discord gateway. + + + + Represents a configuration class for . + + + This configuration, based on , helps determine several key configurations the + socket client depend on. For instance, shards and connection timeout. + + + The following config enables the message cache and configures the client to always download user upon guild + availability. + + var config = new DiscordSocketConfig + { + AlwaysDownloadUsers = true, + MessageCacheSize = 100 + }; + var client = new DiscordSocketClient(config); + + + + + + Returns the encoding gateway should use. + + + + + Gets or sets the WebSocket host to connect to. If null, the client will use the + /gateway endpoint. + + + + + Gets or sets the time, in milliseconds, to wait for a connection to complete before aborting. + + + + + Gets or sets the ID for this shard. Must be less than . + + + + + Gets or sets the total number of shards for this application. + + + + + Gets or sets the number of messages per channel that should be kept in cache. Setting this to zero + disables the message cache entirely. + + + + + Gets or sets the max number of users a guild may have for offline users to be included in the READY + packet. The maximum value allowed is 250. + + + + + Gets or sets the provider used to generate new WebSocket connections. + + + + + Gets or sets the provider used to generate new UDP sockets. + + + + + Gets or sets whether or not all users should be downloaded as guilds come available. + + + + By default, the Discord gateway will only send offline members if a guild has less than a certain number + of members (determined by in this library). This behaviour is why + sometimes a user may be missing from the WebSocket cache for collections such as + . + + + This property ensures that whenever a guild becomes available (determined by + ), incomplete user chunks will be + downloaded to the WebSocket cache. + + + For more information, please see + Request Guild Members + on the official Discord API documentation. + + + Please note that it can be difficult to fill the cache completely on large guilds depending on the + traffic. If you are using the command system, the default user TypeReader may fail to find the user + due to this issue. This may be resolved at v3 of the library. Until then, you may want to consider + overriding the TypeReader and use + + or + as a backup. + + + + + + Gets or sets whether or not interactions are acknowledge with source. + + + + Discord interactions will not appear in chat until the client responds to them. With this option set to + , the client will automatically acknowledge the interaction with . + See the docs on + responding to interactions for more info. + + + With this option set to , you will have to acknowledge the interaction with + . + Only after the interaction is acknowledged, the origional slash command message will be visible. + + + Please note that manually acknowledging the interaction with a message reply will not provide any return data. + Automatically acknowledging the interaction without sending the message will allow for follow up responses to + be used; follow up responses return the message data sent. + + + + + + Gets or sets the timeout for event handlers, in milliseconds, after which a warning will be logged. + Setting this property to nulldisables this check. + + + + + Gets or sets the behavior for on bulk deletes. + + + + If true, the event will not be raised for bulk + deletes, and only the will be raised. If false + , both events will be raised. + + + If unset, both events will be raised, but a warning will be raised the first time a bulk delete event is + received. + + + + + + Gets or sets enabling dispatching of guild subscription events e.g. presence and typing events. + This is not used if are provided. + + + + + Gets or sets the maximum identify concurrency. + + + This information is provided by Discord. + It is only used when using a and auto-sharding is disabled. + + + + + Gets or sets the maximum wait time in milliseconds between GUILD_AVAILABLE events before firing READY. + If zero, READY will fire as soon as it is received and all guilds will be unavailable. + + + This property is measured in milliseconds; negative values will throw an exception. + If a guild is not received before READY, it will be unavailable. + + + A representing the maximum wait time in milliseconds between GUILD_AVAILABLE events + before firing READY. + + Value must be at least 0. + + + + Gets or sets gateway intents to limit what events are sent from Discord. Allows for more granular control than the property. + + + For more information, please see + GatewayIntents + on the official Discord API documentation. + + + + + Initializes a new instance of the class with the default configuration. + + + + + Represents a generic WebSocket-based audio channel. + + + + + Represents a generic WebSocket-based channel that can send and receive messages. + + + + + Gets all messages in this channel's cache. + + + A read-only collection of WebSocket-based messages. + + + + + Sends a message to this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The message to be sent. + Determines whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The file path of the file. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Sends a file to this message channel with an optional caption. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The of the file to be sent. + The name of the attachment. + The message to be sent. + Whether the message should be read aloud by Discord or not. + The to be sent. + The options to be used when sending the request. + Whether the message attachment should be hidden as a spoiler. + + Specifies if notifications are sent for mentioned users and roles in the message . + If null, all mentioned roles and users will be notified. + + The message references to be included. Used to reply to specific messages. + The message components to be included with this message. Used for interactions + + A task that represents an asynchronous send operation for delivering the message. The task result + contains the sent message. + + + + + Gets a cached message from this channel. + + + + This method requires the use of cache, which is not enabled by default; if caching is not enabled, + this method will always return null. Please refer to + for more details. + + + This method retrieves the message from the local WebSocket cache and does not send any additional + request to Discord. This message may be a message that has been deleted. + + + The snowflake identifier of the message. + + A WebSocket-based message object; null if it does not exist in the cache or if caching is not + enabled. + + + + + Gets the last N cached messages from this message channel. + + + + This method requires the use of cache, which is not enabled by default; if caching is not enabled, + this method will always return an empty collection. Please refer to + for more details. + + + This method retrieves the message(s) from the local WebSocket cache and does not send any additional + request to Discord. This read-only collection may include messages that have been deleted. The + maximum number of messages that can be retrieved from this method depends on the + set. + + + The number of messages to get. + + A read-only collection of WebSocket-based messages. + + + + + Gets the last N cached messages starting from a certain message in this message channel. + + + + This method requires the use of cache, which is not enabled by default; if caching is not enabled, + this method will always return an empty collection. Please refer to + for more details. + + + This method retrieves the message(s) from the local WebSocket cache and does not send any additional + request to Discord. This read-only collection may include messages that have been deleted. The + maximum number of messages that can be retrieved from this method depends on the + set. + + + The message ID to start the fetching from. + The direction of which the message should be gotten from. + The number of messages to get. + + A read-only collection of WebSocket-based messages. + + + + + Gets the last N cached messages starting from a certain message in this message channel. + + + + This method requires the use of cache, which is not enabled by default; if caching is not enabled, + this method will always return an empty collection. Please refer to + for more details. + + + This method retrieves the message(s) from the local WebSocket cache and does not send any additional + request to Discord. This read-only collection may include messages that have been deleted. The + maximum number of messages that can be retrieved from this method depends on the + set. + + + The message to start the fetching from. + The direction of which the message should be gotten from. + The number of messages to get. + + A read-only collection of WebSocket-based messages. + + + + + Gets a read-only collection of pinned messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation for retrieving pinned messages in this channel. + The task result contains a read-only collection of messages found in the pinned messages. + + + + + Represents a generic WebSocket-based channel that is private to select recipients. + + + + + Represents a WebSocket-based category channel. + + + + + + + + Gets the child channels of this category. + + + A read-only collection of whose + matches the snowflake identifier of this category + channel. + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based channel. + + + + + Gets when the channel is created. + + + + + Gets a collection of users from the WebSocket cache. + + + + Unexpected channel type is created. + + + + Gets a generic user from this channel. + + The snowflake identifier of the user. + + A generic WebSocket-based user associated with the snowflake identifier. + + + + + + + + + + + + + Unexpected type. + + + Unexpected type. + + + + Represents a WebSocket-based direct-message channel. + + + + + Gets the recipient of the channel. + + + + + + + + Gets a collection that is the current logged-in user and the recipient. + + + + + + + + + + + Gets the message associated with the given . + + TThe ID of the message. + The options to be used when sending the request. + + The message gotten from either the cache or the download, or null if none is found. + + + + + Gets the last N messages from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The ID of the starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + Gets a user in this channel from the provided . + + The snowflake identifier of the user. + + A object that is a recipient of this channel; otherwise null. + + + + + Returns the recipient user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based private group channel. + + + + + + + + + + + + + Voice is not yet supported for group channels. + + + + + + + Gets a message from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The snowflake identifier of the message. + The options to be used when sending the request. + + A task that represents an asynchronous get operation for retrieving the message. The task result contains + the retrieved message; null if no message is found with the specified identifier. + + + + + Gets the last N messages from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The ID of the starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + + + + + + + Gets a user from this group. + + The snowflake identifier of the user. + + A WebSocket-based group user associated with the snowflake identifier. + + + + + Returns the name of the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Connecting to a group channel is not supported. + + + + + + + + + + Represents a WebSocket-based guild channel. + + + + + Gets the guild associated with this channel. + + + A guild object that this channel belongs to. + + + + + + + + + + + + + + Gets a collection of users that are able to view the channel. + + + A read-only collection of users that can access the channel (i.e. the users seen in the user list). + + + + + + + + + + + + + + Gets the permission overwrite for a specific user. + + The user to get the overwrite from. + + An overwrite object for the targeted user; null if none is set. + + + + + Gets the permission overwrite for a specific role. + + The role to get the overwrite from. + + An overwrite object for the targeted role; null if none is set. + + + + + Adds or updates the permission overwrite for the given user. + + The user to add the overwrite to. + The overwrite to add to the user. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the channel. + + + + + Adds or updates the permission overwrite for the given role. + + The role to add the overwrite to. + The overwrite to add to the role. + The options to be used when sending the request. + + A task representing the asynchronous permission operation for adding the specified permissions to the channel. + + + + + Removes the permission overwrite for the given user, if one exists. + + The user to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Removes the permission overwrite for the given role, if one exists. + + The role to remove the overwrite from. + The options to be used when sending the request. + + A task representing the asynchronous operation for removing the specified permissions from the channel. + + + + + Gets the name of the channel. + + + A string that resolves to . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based news channel in a guild that has the same properties as a . + + + + The property is not supported for news channels. + + + + + + + + This property is not supported by this type. Attempting to use this property will result in a . + + + + + + Represents a WebSocket-based channel in a guild that can send and receive messages. + + + + + + + + + + + + + + Gets the parent (category) of this channel in the guild's channel list. + + + An representing the parent of this channel; null if none is set. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a message from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The snowflake identifier of the message. + The options to be used when sending the request. + + A task that represents an asynchronous get operation for retrieving the message. The task result contains + the retrieved message; null if no message is found with the specified identifier. + + + + + Gets the last N messages from this message channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The ID of the starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + Gets a collection of messages in this channel. + + + This method follows the same behavior as described in . + Please visit its documentation for more details on this method. + + The starting message to get the messages from. + The direction of the messages to be gotten from. + The numbers of message to be gotten from. + The options to be used when sending the request. + + Paged collection of messages. + + + + + + + + + + + + + + + + + Message content is too long, length must be less or equal to . + + + + + + + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + + + + + + + + + + Creates a webhook in this text channel. + + The name of the webhook. + The avatar of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + webhook. + + + + + Gets a webhook available in this text channel. + + The identifier of the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a webhook associated + with the identifier; null if the webhook is not found. + + + + + Gets the webhooks available in this text channel. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks that is available in this channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based voice channel in a guild. + + + + + + + + + + + + + + Gets the parent (category) channel of this channel. + + + A category channel representing the parent of this channel; null if none is set. + + + + + + + + Gets a collection of users that are currently connected to this voice channel. + + + A read-only collection of users that are currently connected to this voice channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based guild object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the number of members. + + + This property retrieves the number of members returned by Discord. + + + Due to how this property is returned by Discord instead of relying on the WebSocket cache, the + number here is the most accurate in terms of counting the number of users within this guild. + + + Use this instead of enumerating the count of the + collection, as you may see discrepancy + between that and this property. + + + + + + Gets the number of members downloaded to the local guild cache. + + + Indicates whether the client is connected to this guild. + + + + + + + + + Gets the user that owns this guild. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates whether the client has all the members downloaded to the local guild cache. + + + Indicates whether the guild cache is synced to this guild. + + + + Gets the associated with this guild. + + + + + Gets the default channel in this guild. + + + This property retrieves the first viewable text channel for this guild. + + This channel does not guarantee the user can send message to it, as it only looks for the first viewable + text channel. + + + + A representing the first viewable channel that the user has access to. + + + + + Gets the AFK voice channel in this guild. + + + A that the AFK users will be moved to after they have idled for too + long; if none is set. + + + + + Gets the max bitrate for voice channels in this guild. + + + A representing the maximum bitrate value allowed by Discord in this guild. + + + + + Gets the embed channel (i.e. the channel set in the guild's widget settings) in this guild. + + + A channel set within the server's widget settings; if none is set. + + + + + Gets the widget channel (i.e. the channel set in the guild's widget settings) in this guild. + + + A channel set within the server's widget settings; if none is set. + + + + + Gets the system channel where randomized welcome messages are sent in this guild. + + + A text channel where randomized welcome messages will be sent to; if none is set. + + + + + Gets the channel with the guild rules. + + + A text channel with the guild rules; if none is set. + + + + + Gets the channel where admins and moderators of Community guilds receive + notices from Discord. + + + A text channel where admins and moderators of Community guilds receive + notices from Discord; if none is set. + + + + + Gets a collection of all text channels in this guild. + + + A read-only collection of message channels found within this guild. + + + + + Gets a collection of all voice channels in this guild. + + + A read-only collection of voice channels found within this guild. + + + + + Gets a collection of all category channels in this guild. + + + A read-only collection of category channels found within this guild. + + + + + Gets the current logged-in user. + + + + + Gets the built-in role containing all users in this guild. + + + A role object that represents an @everyone role in this guild. + + + + + Gets a collection of all channels in this guild. + + + A read-only collection of generic channels found within this guild. + + + + + + + + + + + Gets a collection of users in this guild. + + + This property retrieves all users found within this guild. + + + This property may not always return all the members for large guilds (i.e. guilds containing + 100+ users). If you are simply looking to get the number of users present in this guild, + consider using instead. + + + Otherwise, you may need to enable to fetch + the full user list upon startup, or use to manually download + the users. + + + + + A collection of guild users found within this guild. + + + + + Gets a collection of all roles in this guild. + + + A read-only collection of roles found within this guild. + + + + + + + + is . + + + + is . + + + + is . + + + + + + + + + + + + + Gets a collection of all users banned in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + ban objects that this guild currently possesses, with each object containing the user banned and reason + behind the ban. + + + + + Gets a ban object for a banned user. + + The banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + Gets a ban object for a banned user. + + The snowflake identifier for the banned user. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a ban object, which + contains the user information and the reason for the ban; if the ban entry cannot be found. + + + + + + + + + + + + + + + + + Gets a channel in this guild. + + The snowflake identifier for the channel. + + A generic channel associated with the specified ; if none is found. + + + + + Gets a text channel in this guild. + + The snowflake identifier for the text channel. + + A text channel associated with the specified ; if none is found. + + + + + Gets a voice channel in this guild. + + The snowflake identifier for the voice channel. + + A voice channel associated with the specified ; if none is found. + + + + + Gets a category channel in this guild. + + The snowflake identifier for the category channel. + + A category channel associated with the specified ; if none is found. + + + + + Creates a new text channel in this guild. + + + The following example creates a new text channel under an existing category named Wumpus with a set topic. + + var categories = await guild.GetCategoriesAsync(); + var targetCategory = categories.FirstOrDefault(x => x.Name == "wumpus"); + if (targetCategory == null) return; + await Context.Guild.CreateTextChannelAsync(name, x => + { + x.CategoryId = targetCategory.Id; + x.Topic = $"This channel was created at {DateTimeOffset.UtcNow} by {user}."; + }); + + + The new name for the text channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + + A task that represents the asynchronous creation operation. The task result contains the newly created + text channel. + + + + + Creates a new voice channel in this guild. + + The new name for the voice channel. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + is . + + A task that represents the asynchronous creation operation. The task result contains the newly created + voice channel. + + + + + Creates a new channel category in this guild. + + The new name for the category. + The delegate containing the properties to be applied to the channel upon its creation. + The options to be used when sending the request. + is . + + A task that represents the asynchronous creation operation. The task result contains the newly created + category channel. + + + + + Gets a collection of all the voice regions this guild can access. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + voice regions the guild can access. + + + + + Gets a collection of all invites in this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection of + invite metadata, each representing information for an invite found within this guild. + + + + + Gets the vanity invite URL of this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the partial metadata of + the vanity invite found within this guild; if none is found. + + + + + Gets a role in this guild. + + The snowflake identifier for the role. + + A role that is associated with the specified ; if none is found. + + + + + + + + Creates a new role with the provided name. + + The new name for the role. + The guild permission that the role should possess. + The color of the role. + Whether the role is separated from others on the sidebar. + Whether the role can be mentioned. + The options to be used when sending the request. + is . + + A task that represents the asynchronous creation operation. The task result contains the newly created + role. + + + + + + + + Gets a user from this guild. + + + This method retrieves a user found within this guild. + + This may return in the WebSocket implementation due to incomplete user collection in + large guilds. + + + The snowflake identifier of the user. + + A guild user associated with the specified ; if none is found. + + + + + + + + Gets a collection of all users in this guild. + + + This method retrieves all users found within this guild throught REST. + Users returned by this method are not cached. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users found within this guild. + + + + + + + + Gets a collection of users in this guild that the name or nickname starts with the + provided at . + + + The can not be higher than . + + The partial name or nickname to search. + The maximum number of users to be gotten. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a collection of guild + users that the name or nickname starts with the provided at . + + + + + Gets the specified number of audit log entries for this guild. + + The number of audit log entries to fetch. + The options to be used when sending the request. + The audit log entry ID to filter entries before. + The type of actions to filter. + The user ID to filter entries for. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of the requested audit log entries. + + + + + Gets a webhook found within this guild. + + The identifier for the webhook. + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains the webhook with the + specified ; if none is found. + + + + + Gets a collection of all webhook from this guild. + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of webhooks found within the guild. + + + + + Gets this guilds slash commands commands + + The options to be used when sending the request. + + A task that represents the asynchronous get operation. The task result contains a read-only collection + of application commands found within the guild. + + + + + + + + + + + is . + + + + + + + Gets the name of the guild. + + + A string that resolves to . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a Websocket-based interaction type for Message Components. + + + + + The data received with this interaction, contains the button that was clicked. + + + + + The message that contained the trigger for this interaction. + + + + + Responds to an Interaction. + + If you have set to , You should use + instead. + + + The text of the message to be sent. + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + A to be sent with this response + + The sent as the response. If this is the first acknowledgement, it will return null. + + Message content is too long, length must be less or equal to . + The parameters provided were invalid or the token was invalid. + + + + Sends a followup message for this interaction. + + The text of the message to be sent + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + /// if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + A to be sent with this response + + The sent message. + + + + + Represents the data sent with a . + + + + + The components Custom Id that was clicked + + + + + The type of the component clicked + + + + + Represends a Websocket-based recieved over the gateway. + + + + + + + + + + + + + + A collection of 's recieved over the gateway. + + + + + The where this application was created. + + + + + Represents a choice for a . + + + + + + + + + + + Represents an option for a . + + + + + + + + + + + + + + + + + + + + Choices for string and int types for the user to pick from. + + + + + If the option is a subcommand or subcommand group type, this nested options will be the parameters. + + + + + Represents a Websocket-based slash command received over the gateway. + + + + + The data associated with this interaction. + + + + + Responds to an Interaction. + + If you have set to , You should use + instead. + + + The text of the message to be sent. + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + + The sent as the response. If this is the first acknowledgement, it will return null. + + Message content is too long, length must be less or equal to . + The parameters provided were invalid or the token was invalid. + + + + Sends a followup message for this interaction. + + The text of the message to be sent + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + /// if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + + The sent message. + + + + + Represents the data tied with the interaction. + + + + + + + + The 's received with this interaction. + + + + + Represents a Websocket-based recieved by the gateway + + + + + + + + + + + The sub command options received for this sub command group. + + + + + Represents an Interaction recieved over the gateway. + + + + + The this interaction was used in. + + + + + The who triggered this interaction. + + + + + The type of this interaction. + + + + + The token used to respond to this interaction. + + + + + The data sent with this interaction. + + + + + The version of this interaction. + + + + + if the token is valid for replying to, otherwise . + + + + + Responds to an Interaction. + + If you have set to , You should use + instead. + + + The text of the message to be sent. + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + A to be sent with this response + + The sent as the response. If this is the first acknowledgement, it will return null. + + Message content is too long, length must be less or equal to . + The parameters provided were invalid or the token was invalid. + + + + Sends a followup message for this interaction. + + The text of the message to be sent + if the message should be read out by a text-to-speech reader, otherwise . + A to send with this response. + The type of response to this Interaction. + /// if the response should be hidden to everyone besides the invoker of the command, otherwise . + The allowed mentions for this response. + The request options for this response. + A to be sent with this response + + The sent message. + + + + + Acknowledges this interaction with the . + + + A task that represents the asynchronous operation of acknowledging the interaction. + + + + + + + + Gets the channel where this invite was created. + + + + + + + + Gets the guild where this invite was created. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the time (in seconds) until the invite expires. + + + + + Gets the max number of uses this invite may have. + + + + + Gets the number of times this invite has been used. + + + + + Gets the user that created this invite if available. + + + + + + + + Gets when this invite was created. + + + + + Gets the user targeted by this invite if available. + + + + + Gets the type of the user targeted by this invite. + + + + + + + + + + + + + + Gets the URL of the invite. + + + A string that resolves to the Url of the invite. + + + + + + + + + + + + + is less than 0. + + + + Represents a WebSocket-based message. + + + + + Gets the author of this message. + + + A WebSocket-based user object. + + + + + Gets the source channel of the message. + + + A WebSocket-based message channel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns all attachments included in this message. + + + Collection of attachments. + + + + + Returns all embeds included in this message. + + + Collection of embed objects. + + + + + Returns the channels mentioned in this message. + + + Collection of WebSocket-based guild channels. + + + + + Returns the roles mentioned in this message. + + + Collection of WebSocket-based roles. + + + + + Returns the users mentioned in this message. + + + Collection of WebSocket-based users. + + + + + + + + + + + + + + + + + Gets the content of the message. + + + Content of the message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based reaction object. + + + + + Gets the ID of the user who added the reaction. + + + This property retrieves the snowflake identifier of the user responsible for this reaction. This + property will always contain the user identifier in event that + cannot be retrieved. + + + A user snowflake identifier associated with the user. + + + + + Gets the user who added the reaction if possible. + + + + This property attempts to retrieve a WebSocket-cached user that is responsible for this reaction from + the client. In other words, when the user is not in the WebSocket cache, this property may not + contain a value, leaving the only identifiable information to be + . + + + If you wish to obtain an identifiable user object, consider utilizing + which will attempt to retrieve the user from REST. + + + + A user object where possible; a value is not always returned. + + + + + + Gets the ID of the message that has been reacted to. + + + A message snowflake identifier associated with the message. + + + + + Gets the message that has been reacted to if possible. + + + A WebSocket-based message where possible; a value is not always returned. + + + + + + Gets the channel where the reaction takes place in. + + + A WebSocket-based message channel. + + + + + + + + + + + + + + Represents a WebSocket-based message sent by the system. + + + + + + + + Represents a WebSocket-based message sent by a user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only the author of a message may modify the message. + Message content is too long, length must be less or equal to . + + + + + + + + + + + + + + + + This operation may only be called on a channel. + + + + Represents a WebSocket-based role to be given to a guild user. + + + + + Gets the guild that owns this role. + + + A representing the parent guild of this role. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a value that determines if the role is an @everyone role. + + + true if the role is @everyone; otherwise false. + + + + + + + + + + + + + + Gets the name of the role. + + + A string that resolves to . + + + + + + + + + + + + + + Gets the group channel of the user. + + + A representing the channel of which the user belongs to. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based guild user. + + + + + Gets the guild the user is in. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a collection of roles that the user possesses. + + + + + Returns the voice channel the user is in, or null if none. + + + + + + + + Gets the voice connection status of the user if any. + + + A representing the user's voice status; null if the user is not + connected to a voice channel. + + + + + + + + Returns the position of the user within the role hierarchy. + + + The returned value equal to the position of the highest role the user has, or + if user is the server owner. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the WebSocket user's presence status. This may include their online status and their activity. + + + + + + + + + + + + + + + + + Creates a new containing all of the client types + where a user is active from the data supplied in the Presence update frame. + + + A dictionary keyed by the + and where the value is the . + + + A collection of all s that this user is active. + + + + + Creates a new containing all the activities + that a user has from the data supplied in the Presence update frame. + + + A list of . + + + A list of all that this user currently has available. + + + + + Gets the status of the user. + + + A string that resolves to . + + + + + Represents the logged-in WebSocket-based user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based user that is yet to be recognized by the client. + + + A user may not be recognized due to the user missing from the cache or failed to be recognized properly. + + + + + + + + + + + + + + + + + + + + + + + This field is not supported for an unknown user. + + + + Represents a WebSocket-based user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets mutual guilds shared with this user. + + + This property will only include guilds in the same . + + + + + + + + + + + + + + Gets the full name of the user (e.g. Example#0001). + + + The full name of the user. + + + + + Represents a WebSocket user's voice connection status. + + + + + Initializes a default with everything set to null or false. + + + + + Gets the voice channel that the user is currently in; or null if none. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the name of this voice channel. + + + A string that resolves to name of this voice channel; otherwise "Unknown". + + + + + + + + Represents a WebSocket-based webhook user. + + + + Gets the guild of this webhook. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Webhook users cannot be kicked. + + + + Webhook users cannot be modified. + + + + Roles are not supported on webhook users. + + + + Roles are not supported on webhook users. + + + + Roles are not supported on webhook users. + + + + Roles are not supported on webhook users. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a WebSocket-based voice server. + + + + + Gets the guild associated with the voice server. + + + A cached entity of the guild. + + + + + Gets the endpoint URL of the voice server host. + + + An URL representing the voice server host. + + + + + Gets the voice connection token. + + + A voice connection token. + + + + + The exception thrown when the gateway client has been requested to reconnect. + + + + + Initializes a new instance of the class with the reconnection + message. + + The reason why the gateway has been requested to reconnect. + + + The sharded variant of , which may contain the client, user, guild, channel, and message. + + + Gets the that the command is executed with. + + + Gets the shard ID of the command context. + + + + + + + Represents a WebSocket-based context of a command. This may include the client, guild, channel, user, and message. + + + + + Gets the that the command is executed with. + + + + + Gets the that the command is executed in. + + + + + Gets the that the command is executed in. + + + + + Gets the who executed the command. + + + + + Gets the that the command is interpreted from. + + + + + Indicates whether the channel that the command is executed in is a private channel. + + + + + Initializes a new class with the provided client and message. + + The underlying client. + The underlying message. + + + + + + + + + + + + + + + + + + The default WebSocketProvider is not supported on this platform. + + + diff --git a/src/Discord.Net.Webhook/Discord.Net.Webhook.csproj b/src/Discord.Net.Webhook/Discord.Net.Webhook.csproj index e5374067e..1e4b096d5 100644 --- a/src/Discord.Net.Webhook/Discord.Net.Webhook.csproj +++ b/src/Discord.Net.Webhook/Discord.Net.Webhook.csproj @@ -6,12 +6,15 @@ Discord.Webhook A core Discord.Net Labs library containing the Webhook client and models. netstandard2.0;netstandard2.1 - 2.3.1 + 2.3.2 Discord.Net.Labs.Webhook https://github.com/Discord-Net-Labs/Discord.Net-Labs https://github.com/Discord-Net-Labs/Discord.Net-Labs Temporary.png + + C:\Users\lynch\Documents\GitHub\Discord.Net Labs\Discord.Net-Labs\src\Discord.Net.Webhook\Discord.Net.Webhook.xml + diff --git a/src/Discord.Net.Webhook/Discord.Net.Webhook.xml b/src/Discord.Net.Webhook/Discord.Net.Webhook.xml new file mode 100644 index 000000000..e2c3e69a9 --- /dev/null +++ b/src/Discord.Net.Webhook/Discord.Net.Webhook.xml @@ -0,0 +1,56 @@ + + + + Discord.Net.Webhook + + + + A client responsible for connecting as a Webhook. + + + Creates a new Webhook Discord client. + + + Creates a new Webhook Discord client. + + + Creates a new Webhook Discord client. + + + Creates a new Webhook Discord client. + + + Creates a new Webhook Discord client. + + + + Creates a new Webhook Discord client. + + The url of the webhook. + The configuration options to use for this client. + Thrown if the is an invalid format. + Thrown if the is null or whitespace. + + + Sends a message to the channel for this webhook. + Returns the ID of the created message. + + + Sends a message to the channel for this webhook with an attachment. + Returns the ID of the created message. + + + Sends a message to the channel for this webhook with an attachment. + Returns the ID of the created message. + + + Modifies the properties of this webhook. + + + Deletes this webhook from Discord and disposes the client. + + + Could not find a webhook with the supplied credentials. + + + diff --git a/src/Discord.Net/Discord.Net.nuspec b/src/Discord.Net/Discord.Net.nuspec index 0a6fa257f..15c90fc2d 100644 --- a/src/Discord.Net/Discord.Net.nuspec +++ b/src/Discord.Net/Discord.Net.nuspec @@ -2,7 +2,7 @@ Discord.Net.Labs - 2.3.5$suffix$ + 2.3.6$suffix$ Discord.Net Labs Discord.Net Contributors quinchs @@ -14,25 +14,25 @@ https://avatars.githubusercontent.com/u/84047264 - - - - - + + + + + - - - - - + + + + + - - - - - + + + + +