public IrcConnection(IrcConnectionInfo ircConnectionInfo) { IrcConnectionInfo = ircConnectionInfo; var connectionName = $"{ircConnectionInfo.Server}:{ircConnectionInfo.Nick}"; if (!ConnectionPool.ContainsKey(connectionName)) { IrcClient = new StandardIrcClient(); IrcClient.RawMessageReceived += Irc_RawMessageReceived; IrcClient.ErrorMessageReceived += Irc_ErrorMessageReceived; IrcClient.Connected += Irc_Connected; IrcClient.ConnectFailed += Irc_ConnectFailed; IrcClient.MotdReceived += Irc_MotdReceived; IrcClient.Connect(ircConnectionInfo.Server, ircConnectionInfo.Port, false, ircConnectionInfo.GetRegistrationInfo()); // Wait for event handlers to authenticate and join the channel Thread.Sleep(30 * 1000); ConnectionPool.Add(connectionName, IrcClient); } else { IrcClient = ConnectionPool[connectionName]; IrcClient.LocalUser.JoinedChannel += Irc_JoinedChannel; JoinIrcChannel(); } }
private static async Task LoadChannel(DiscordConnectionInfo discordInfo, IrcConnectionInfo ircInfo) { var pair = new ChannelPair(new IrcConnection(ircInfo) { EnableConsoleLogging = WriteToConsole }, discordInfo) { EnableConsoleLogging = WriteToConsole }; if (WriteToConsole) { Console.WriteLine("Connecting..."); } await pair.Connect(); if (WriteToConsole) { Console.WriteLine("Ready."); } Pairs.Add(pair); }