using SlatedGameToolkit.Tools.CommandSystem;
using SlatedGameToolkit.Tools.CommandSystem.Interaction;

namespace SlatedGameToolkit.Tools.Commands
{
    public class StopCommand : IInvocable
    {
        private readonly string[] invokers = new string[] {"stop", "exit", "q", "quit"};
        public bool Execute(IInteractable interactable, string[] args)
        {
            if (args.Length > 1) return false;
            Program.Stop();
            return true;
        }

        public string getDescription()
        {
            return "Exits the tool.";
        }

        public string getUsage(string arg)
        {
            return "This command exits the tool and has no additional arguments.";
        }

        public string[] GetInvokers()
        {
            return invokers;
        }

        public void Dispose()
        {
        }
    }
}