using System; using System.Linq; namespace SharpChat { public class ChatCommandContext { public string Name { get; } public string[] Args { get; } public ChatContext Chat { get; } public ChatUser User { get; } public ChatConnection Connection { get; } public ChatChannel Channel { get; } public ChatCommandContext( string text, ChatContext chat, ChatUser user, ChatConnection connection, ChatChannel channel ) { if(text == null) throw new ArgumentNullException(nameof(text)); Chat = chat ?? throw new ArgumentNullException(nameof(chat)); User = user ?? throw new ArgumentNullException(nameof(user)); Connection = connection ?? throw new ArgumentNullException(nameof(connection)); Channel = channel ?? throw new ArgumentNullException(nameof(channel)); string[] parts = text[1..].Split(' '); Name = parts.First().Replace(".", string.Empty); Args = parts.Skip(1).ToArray(); } public ChatCommandContext( string name, string[] args, ChatContext chat, ChatUser user, ChatConnection connection, ChatChannel channel ) { Name = name ?? throw new ArgumentNullException(nameof(name)); Args = args ?? throw new ArgumentNullException(nameof(args)); Chat = chat ?? throw new ArgumentNullException(nameof(chat)); User = user ?? throw new ArgumentNullException(nameof(user)); Connection = connection ?? throw new ArgumentNullException(nameof(connection)); Channel = channel ?? throw new ArgumentNullException(nameof(channel)); } public bool NameEquals(string name) { return Name.Equals(name, StringComparison.InvariantCultureIgnoreCase); } } }