using System.Threading.Tasks; namespace Discord.Interactions { /// /// Represents a generic interaction module base. /// public interface IInteractionModuleBase { /// /// Sets the context of this module. /// /// void SetContext (IInteractionContext context); /// /// Method body to be executed asynchronously before executing an application command. /// /// Command information related to the Discord Application Command. Task BeforeExecuteAsync(ICommandInfo command); /// /// Method body to be executed before executing an application command. /// /// Command information related to the Discord Application Command. void BeforeExecute(ICommandInfo command); /// /// Method body to be executed asynchronously after an application command execution. /// /// Command information related to the Discord Application Command. Task AfterExecuteAsync(ICommandInfo command); /// /// Method body to be executed after an application command execution. /// /// Command information related to the Discord Application Command. void AfterExecute (ICommandInfo command); /// /// Method body to be executed when is called. /// /// Command Service instance that built this module. /// Info class of this module. void OnModuleBuilding (InteractionService commandService, ModuleInfo module); /// /// Method body to be executed after the automated module creation is completed and before is called. /// /// Builder class of this module. /// Command Service instance that is building this method. void Construct(Builders.ModuleBuilder builder, InteractionService commandService); } }