public Mask GetMatch(IrcUser user) { var match = Masks.FirstOrDefault(m => user.Match(m.Value)); if (match == null) { throw new KeyNotFoundException("No mask matches the specified user."); } return(match); }
public PrivateMessage(IrcMessage message, ServerInfo serverInfo) { Source = message.Parameters[0]; Message = message.Parameters[1]; User = new IrcUser(message.Prefix); //if (serverInfo.ChannelTypes.Any(c => Source.StartsWith(c.ToString()))) IsChannelMessage = true; //else // Source = User.Nick; }
internal ExtendedWho() { QueryType = -1; Channel = "*"; User = new IrcUser(); IP = string.Empty; Server = string.Empty; Flags = string.Empty; Hops = -1; TimeIdle = -1; OpLevel = "n/a"; }
public PrivateMessage(IrcMessage message) { Source = message.Parameters[0]; Message = message.Parameters[1]; User = new IrcUser(message.Prefix); if (Source.StartsWith("#")) { IsChannelMessage = true; } else { Source = User.Nick; } }
public IrcClient(string serverAddress, IrcUser user) { if (serverAddress == null) { throw new ArgumentNullException("serverAddress"); } if (user == null) { throw new ArgumentNullException("user"); } User = user; ServerAddress = serverAddress; Encoding = Encoding.UTF8; Channels = new ChannelCollection(this); Settings = new ClientSettings(); Handlers = new Dictionary <string, MessageHandler>(); MessageHandlers.RegisterDefaultHandlers(this); RequestManager = new RequestManager(); }
/// <summary> /// Creates a new IRC client, but will not connect until ConnectAsync is called. /// </summary> /// <param name="serverAddress">Server address including port in the form of "hostname:port".</param> /// <param name="user">The IRC user to connect as.</param> /// <param name="useSSL">Connect with SSL if true.</param> public IrcClient(string serverAddress, IrcUser user, bool useSSL = false) { if (serverAddress == null) { throw new ArgumentNullException("serverAddress"); } if (user == null) { throw new ArgumentNullException("user"); } user.Client = this; User = user; ServerAddress = serverAddress; Encoding = Encoding.UTF8; Settings = new ClientSettings(); Handlers = new Dictionary <string, MessageHandler>(); MessageHandlers.RegisterDefaultHandlers(this); RequestManager = new RequestManager(); UseSSL = useSSL; WriteQueue = new ConcurrentQueue <string>(); ServerInfo = new ServerInfo(); PrivmsgPrefix = ""; Channels = User.Channels = new ChannelCollection(this); Users = new UserPool(this); Users.Add(User); // Add self to user pool Capabilities = new CapabilityPool(); // List of supported capabilities Capabilities.AddRange(new string[] { "server-time", "multi-prefix", "cap-notify", "znc.in/server-time", "znc.in/server-time-iso", "account-notify", "chghost", "userhost-in-names", "sasl" }); IsNegotiatingCapabilities = false; IsAuthenticatingSasl = false; RandomNumber = new Random(); }
public IrcClient(string serverAddress, IrcUser user, bool useSSL = false) { if (serverAddress == null) { throw new ArgumentNullException("serverAddress"); } if (user == null) { throw new ArgumentNullException("user"); } User = user; PartMessage = ""; ServerAddress = serverAddress; Encoding = Encoding.UTF8; Channels = new ChannelCollection(this); Settings = new ClientSettings(); Handlers = new Dictionary <string, MessageHandler>(); MessageHandlers.RegisterDefaultHandlers(this); RequestManager = new RequestManager(); UseSSL = useSSL; WriteQueue = new ConcurrentQueue <string>(); }
public bool ContainsMatch(IrcUser user) { return(Masks.Any(m => user.Match(m.Value))); }
public Mask(string value, IrcUser creator, DateTime creationTime) { Value = value; Creator = creator; CreationTime = creationTime; }
internal WhoIs() { User = new IrcUser(); SecondsIdle = -1; Channels = new string[0]; }