63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace RecrownedAthenaeum.Tools.CommandProcessor
|
|||
|
{
|
|||
|
public abstract class EngineCommand
|
|||
|
{
|
|||
|
bool CaseSensitiveName = false;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// the words a user can type that will invoke this command.
|
|||
|
/// </summary>
|
|||
|
public string[] invokeStrings;
|
|||
|
|
|||
|
public EngineCommand(params string[] invokeStrings)
|
|||
|
{
|
|||
|
this.invokeStrings = invokeStrings ?? throw new ArgumentNullException();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Whether or not this command should be invoked given the string.
|
|||
|
/// </summary>
|
|||
|
/// <param name="command">The string that acts as the command.</param>
|
|||
|
/// <returns>whether or not this command is invoked.</returns>
|
|||
|
public bool IsInvoked(string command)
|
|||
|
{
|
|||
|
if (!CaseSensitiveName) command = command.ToLower();
|
|||
|
for (int i = 0; i < invokeStrings.Length; i++)
|
|||
|
{
|
|||
|
if (!CaseSensitiveName)
|
|||
|
{
|
|||
|
if (invokeStrings[i].ToLower() == command) return true;
|
|||
|
} else
|
|||
|
{
|
|||
|
if (invokeStrings[i] == command) return true;
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Runs the command.
|
|||
|
/// </summary>
|
|||
|
/// <param name="arguments">arguments to be used. May be null.</param>
|
|||
|
public virtual void Run(string[] arguments = null)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Returns the help for the given argument for this command. If no argument is defined, general help for the command should be given.
|
|||
|
/// If no argument is given (null), then returns overall help statement.
|
|||
|
/// </summary>
|
|||
|
/// <param name="argument">The argument the help string is for. Can be null for overall command help.</param>
|
|||
|
/// <returns>The text to help understand the argument.</returns>
|
|||
|
public virtual string Help(string argument = null)
|
|||
|
{
|
|||
|
return "This command doesn't define a help string. Shame on it.";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|