using Discord.Commands.Builders; using System.Threading.Tasks; namespace Discord.Commands { /// /// Represents a generic module base. /// public interface IModuleBase { /// /// Sets the context of this module base. /// /// The context to set. void SetContext(ICommandContext context); /// /// Executed asynchronously before a command is run in this module base. /// /// The command thats about to run. Task BeforeExecuteAsync(CommandInfo command); /// /// Executed before a command is run in this module base. /// /// The command thats about to run. void BeforeExecute(CommandInfo command); /// /// Executed asynchronously after a command is run in this module base. /// /// The command thats about to run. Task AfterExecuteAsync(CommandInfo command); /// /// Executed after a command is ran in this module base. /// /// The command that ran. void AfterExecute(CommandInfo command); /// /// Executed when this module is building. /// /// The command service that is building this module. /// The builder constructing this module. void OnModuleBuilding(CommandService commandService, ModuleBuilder builder); } }