54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
|
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 ChatUserSession Session { get; }
|
|||
|
public ChatChannel Channel { get; }
|
|||
|
|
|||
|
public ChatCommandContext(
|
|||
|
string text,
|
|||
|
ChatContext chat,
|
|||
|
ChatUser user,
|
|||
|
ChatUserSession session,
|
|||
|
ChatChannel channel
|
|||
|
) {
|
|||
|
if(text == null)
|
|||
|
throw new ArgumentNullException(nameof(text));
|
|||
|
|
|||
|
Chat = chat ?? throw new ArgumentNullException(nameof(chat));
|
|||
|
User = user ?? throw new ArgumentNullException(nameof(user));
|
|||
|
Session = session ?? throw new ArgumentNullException(nameof(session));
|
|||
|
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,
|
|||
|
ChatUserSession session,
|
|||
|
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));
|
|||
|
Session = session ?? throw new ArgumentNullException(nameof(session));
|
|||
|
Channel = channel ?? throw new ArgumentNullException(nameof(channel));
|
|||
|
}
|
|||
|
|
|||
|
public bool NameEquals(string name) {
|
|||
|
return Name.Equals(name, StringComparison.InvariantCultureIgnoreCase);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|