internal PrivateMessage(IrcClient client, IrcMessage message, ServerInfo serverInfo) { Source = message.Parameters[0]; Message = message.Parameters[1]; User = client.Users.GetOrAdd(message.Prefix); if (serverInfo.ChannelTypes.Any(c => Source.StartsWith(c.ToString()))) IsChannelMessage = true; else Source = User.Nick; }
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; }
/// <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 = user; 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>(); ServerInfo = new ServerInfo(); PrivmsgPrefix = ""; Users = new UserPool(); Users.Add(User); // Add self to user pool }