using TwitchChatTTS.Chat.Commands.Parameters; using TwitchLib.Client.Models; namespace TwitchChatTTS.Chat.Commands { public abstract class ChatCommand { public string Name { get; } public string Description { get; } public IList Parameters { get => _parameters.AsReadOnly(); } private IList _parameters; public ChatCommand(string name, string description) { Name = name; Description = description; _parameters = new List(); } protected void AddParameter(ChatCommandParameter parameter) { if (parameter != null) _parameters.Add(parameter); } public abstract Task CheckPermissions(ChatMessage message, long broadcasterId); public abstract Task Execute(IList args, ChatMessage message, long broadcasterId); } }