protected virtual void Proc() { SyncedChannels.Clear(); // renew the client Client = GetNewIrcClient(); Client.Connect(Config.ServerHostname, Config.ServerPort); Client.Login(Config.Nickname, Config.DisplayName, 0, Config.Username, Config.ServerPassword); // perform autocommands foreach (var autoCmd in Config.AutoConnectCommands) { Client.WriteLine(autoCmd); } // autojoin foreach (var channel in Config.AutoJoinChannels) { Client.RfcJoin(channel); } // listen Client.Listen(); // disconnect DisconnectOrWhatever(); }
protected virtual void HandleChannelNotice(object sender, IrcEventArgs e) { if (!SyncedChannels.Contains(e.Data.Channel)) { return; } OnChannelNotice(new ChannelMessageEventArgs(e.Data)); }
protected virtual void HandleChannelAction(object sender, ActionEventArgs e) { if (!SyncedChannels.Contains(e.Data.Channel)) { return; } OnChannelAction(new ChannelActionEventArgs(e)); }
protected virtual void HandleChannelSynced(object sender, IrcEventArgs e) { SyncedChannels.Add(e.Data.Channel); }