using System.Threading.Tasks; using static SharedLibraryCore.Database.Models.EFClient; using static SharedLibraryCore.Server; 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; } /// /// Games the command is supported on /// Game[] SupportedGames { 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; } /// /// Indicates if the command result should be broadcasted to all clients /// bool IsBroadcast { get; set; } } }