54 lines
2.0 KiB
C#
54 lines
2.0 KiB
C#
using System;
|
|
|
|
namespace RecrownedGTK.Tools.CommandProcessor.Commands
|
|
{
|
|
public class HelpCommand : EngineCommand
|
|
{
|
|
CommandEngine commandEngine;
|
|
|
|
public HelpCommand(CommandEngine commandEngine) : base("help")
|
|
{
|
|
this.commandEngine = commandEngine;
|
|
help = "help [command] [arg]";
|
|
}
|
|
|
|
|
|
public override void Run(string[] arguments)
|
|
{
|
|
if (arguments != null)
|
|
{
|
|
if (commandEngine.ContainsCommand(arguments[0]))
|
|
{
|
|
if (arguments.Length < 2) ConsoleUtilities.WriteWrappedLine(commandEngine.GetCommand(arguments[0]).Help(null));
|
|
for (int i = 1; i < arguments.Length; i++)
|
|
{
|
|
ConsoleUtilities.WriteWrappedLine(commandEngine.GetCommand(arguments[0]).Help(arguments[i]));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new ArgumentException(arguments[0] + " not a command. Type \"help\" for a list of commands.");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ConsoleUtilities.WriteWrappedLine("Tools for RecrownedGTK library. Possible commands are as follows:\n");
|
|
foreach (EngineCommand engineCommand in commandEngine.commands)
|
|
{
|
|
for (int i = 0; i < engineCommand.InvokeStrings.Length; i++)
|
|
{
|
|
ConsoleUtilities.WriteWrapped(engineCommand.InvokeStrings[i]);
|
|
if (i + 1 < engineCommand.InvokeStrings.Length)
|
|
{
|
|
ConsoleUtilities.WriteWrapped(", ");
|
|
}
|
|
}
|
|
ConsoleUtilities.WriteWrapped(" : ");
|
|
ConsoleUtilities.WriteWrapped(engineCommand.Help().Replace("\n", "\n\t"), true);
|
|
Console.WriteLine("--------");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|