Search Results for

    Show / Hide Table of Contents

    Class UserRateLimitAttribute

    Specifies a rate limit for a command or command group for a user.

    Inheritance
    System.Object
    System.Attribute
    InteractionRequirementAttribute
    BaseRateLimitAttribute
    UserRateLimitAttribute
    Inherited Members
    BaseRateLimitAttribute.CheckRateLimitAsync(IInteractionContext, IServiceProvider, UInt64)
    System.Attribute.Equals(System.Object)
    System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
    System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
    System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
    System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
    System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
    System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
    System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
    System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
    System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
    System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
    System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
    System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.Module)
    System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
    System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
    System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
    System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
    System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
    System.Attribute.GetHashCode()
    System.Attribute.IsDefaultAttribute()
    System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
    System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
    System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
    System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
    System.Attribute.IsDefined(System.Reflection.Module, System.Type)
    System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
    System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
    System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
    System.Attribute.Match(System.Object)
    System.Attribute.TypeId
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    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 Source

    UserRateLimitAttribute(Int32, Int32)

    Initializes a new instance of UserRateLimitAttribute.

    Declaration
    public UserRateLimitAttribute(int max, int resetAfterSeconds)
    Parameters
    Type Name Description
    System.Int32 max

    The max amount of time the command could be used during the time period.

    System.Int32 resetAfterSeconds

    The timeframe in which the command can be used a certain amount of times.

    Methods

    | Improve this Doc View Source

    CheckRequirementAsync(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
    System.Threading.Tasks.Task<Result>

    The result of the interaction request requirement.

    Overrides
    InteractionRequirementAttribute.CheckRequirementAsync(IInteractionContext, IServiceProvider)
    • Improve this Doc
    • View Source
    In This Article
    Back to top Generated by DocFX