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
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+