Table of Contents

Class PreconditionAttribute

Namespace
Discord.Interactions
Assembly
Discord.Net.Interactions.dll

Requires the module or class to pass the specified precondition before execution can begin.

[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public abstract class PreconditionAttribute : Attribute
Inheritance
PreconditionAttribute
Derived
Inherited Members

Properties

ErrorMessage

Gets the error message to be returned if execution context doesn't pass the precondition check.

public virtual string ErrorMessage { get; }

Property Value

string

Remarks

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.

Group

Gets the group that this precondition belongs to.

public string Group { get; set; }

Property Value

string

Remarks

Discord.Preconditions of the same group require only one of the preconditions to pass in order to be successful (A || B). Specifying Group = null or not at all will require all preconditions to pass, just like normal (A && B).

Methods

CheckRequirementsAsync(IInteractionContext, ICommandInfo, IServiceProvider)

Checks if the commandInfo command to be executed meets the precondition requirements.

public abstract Task<PreconditionResult> CheckRequirementsAsync(IInteractionContext context, ICommandInfo commandInfo, IServiceProvider services)

Parameters

context IInteractionContext

The context of the command.

commandInfo ICommandInfo

The command being executed.

services IServiceProvider

The service collection used for dependency injection.

Returns

Task<PreconditionResult>

See Also