Files
BetterAmongUs/src/Commands/BaseCommand.cs
T
2026-01-09 00:21:34 -06:00

40 lines
1.3 KiB
C#

using BetterAmongUs.Helpers;
using BetterAmongUs.Items.Attributes;
namespace BetterAmongUs.Commands;
internal enum CommandType
{
Normal,
Sponsor,
Debug,
}
internal abstract class BaseCommand
{
internal static readonly BaseCommand?[] allCommands = [.. RegisterCommandAttribute.Instances];
internal virtual CommandType Type => CommandType.Normal;
internal string[] Names => ShortNames.Concat(new[] { Name }).ToArray();
internal abstract string Name { get; }
internal virtual string[] ShortNames => [];
internal abstract string Description { get; }
internal BaseArgument[] Arguments { get; set; } = [];
internal virtual bool SetChatTimer { get; set; } = false;
internal virtual bool ShowCommand() => true;
internal virtual bool ShowSuggestion() => ShowCommand();
internal abstract void Run();
internal static string CommandResultText(string text, bool onlyGetStr = false)
{
if (!onlyGetStr) Utils.AddChatPrivate(text);
return text;
}
internal static string CommandErrorText(string error, bool onlyGetStr = false)
{
string er = "<color=#f50000><size=150%><b>Error:</b></size></color>";
if (!onlyGetStr) Utils.AddChatPrivate($"<color=#730000>{er}\n{error}");
return $"<color=#730000>{er}\n{error}";
}
}