public IrcConnection Connect( IrcConnectionID id ) { var server = this.settings.Servers.FirstOrDefault( (s) => UriToConnectionId(s.Uri) == id ) ?? this.settings.DefaultServerSettings; var p = new IrcConnectParams() { To = id , User = { Host = server.Userhost , RealName = server.Realname , ID = server.Username , Nick = server.Nickname } , Encoding = Encoding.UTF8 , Password = server.Password , Channels = server.Channels.Select( (s) => s.Name ).ToArray() }; IrcConnection connection; if ( !Connections.ContainsKey(id) ) { connection = new IrcConnection(p,Listeners); Connections.Add(id,connection); } else { connection = Connections[id]; } return connection; }
public IrcConnection( IrcConnectParams p, HashSet<IEventListener> listeners ) { if ( p.Channels != null ) foreach ( string channel in p.Channels ) AddChannel(channel); Parameters = p; TargetNickname = p.User.Nick; Encoding = p.Encoding; Listeners = listeners; BeginReconnect(); HeartbeatTimer.Elapsed += new ElapsedEventHandler(HeartbeatTimer_Elapsed); }
public IrcConnection( IrcConnectParams p ) : this(p,new HashSet<IEventListener>()) { }