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);
}
}