Class UserRateLimitAttribute
Specifies a rate limit for a command or command group for a user.
Inheritance
Inherited Members
Namespace: Color_Chan.Discord.Commands.Attributes.ProvidedRequirements
Assembly: Color-Chan.Discord.Commands.dll
Syntax
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class UserRateLimitAttribute : BaseRateLimitAttribute
Remarks
This requirement will limit the amount of time a user can request interactions during a time period.
Examples
This example limits all the interaction commands in the PongCommands interaction command module to 2 requests every 10 seconds and 4 requests every 30 seconds per user. You can also put the UserRateLimitAttribute on a method if you only want to rate limit a specific interaction.
[UserRateLimit(2, 10)]
[UserRateLimit(4, 30)]
public class PongCommands : SlashCommandModule
{
[SlashCommand("ping", "Ping Pong!")]
public Task<IDiscordInteractionResponse> PongAsync()
{
// Command code...
}
}
Constructors
| Improve this Doc View SourceUserRateLimitAttribute(Int32, Int32)
Initializes a new instance of UserRateLimitAttribute.
Declaration
public UserRateLimitAttribute(int max, int resetAfterSeconds)
Parameters
Type | Name | Description |
---|---|---|
Int32 | max | The max amount of time the command could be used during the time period. |
Int32 | resetAfterSeconds | The timeframe in which the command can be used a certain amount of times. |
Methods
| Improve this Doc View SourceCheckRequirementAsync(IInteractionContext, IServiceProvider)
Checks if a specific requirement for a interaction request has met.
Declaration
public override async Task<Result> CheckRequirementAsync(IInteractionContext context, IServiceProvider services)
Parameters
Type | Name | Description |
---|---|---|
IInteractionContext | context | The IInteractionContext of the interaction request. |
System.IServiceProvider | services | The System.IServiceProvider containing all the necessary dependencies for the interaction request. |
Returns
Type | Description |
---|---|
Task<Result> | The result of the interaction request requirement. |