using SlatedGameToolkit.Tools.System.Interaction; namespace SlatedGameToolkit.Tools.System { public interface IInvocable { /// /// Invokers are the strings that should invoke this command. /// This should not conflict with any other commands invokers. /// /// A list of the strings that will invoke this invokable. string[] GetInvokers(); /// /// The help should be a description of how to properly use this invokable. /// If an argument is specified, the help should cater to that specific argument. /// Information in the description does not need to be repeated. /// /// An argument this invokable should describe. May be null, to which should return a string that describes this invokable in general. /// string getUsage(string arg); /// /// Executes this invokable. /// /// The interactable object. /// The arguments that followed the invokable. /// True if the invokable was successful, false otherwise to display a generic help message. bool Execute(IInteractable interactable, string[] args); /// /// Gets a simple description of the command. /// /// Return a string with a short description of the command. string getDescription(); } }