using System.Threading.Tasks; using static SharedLibraryCore.Database.Models.EFClient; namespace SharedLibraryCore.Interfaces { /// /// Defines the basic properties of a command /// public interface IManagerCommand { /// /// Executes the command /// /// event corresponding to the command /// Task ExecuteAsync(GameEvent gameEvent); /// /// Name of the command /// string Name { get; } /// /// Description of the command /// string Description { get; } /// /// Alternative name of the command /// string Alias { get; } /// /// Minimum permission required to execute the command /// Permission Permission { get; } /// /// Syntax for using the command /// string Syntax { get; } /// /// Indicates if target is required /// bool RequiresTarget { get; } /// /// Indicates if the commands can be run as another client /// bool AllowImpersonation { get; } } }