public async Task LoginAsync(IIrcLoginSettings loginSettings, CancellationToken ct = default) { await _lineCommunicator.ConnectAsync(ct); if (loginSettings.Password != null) { await SetPasswordAsync(loginSettings.Password); } if (loginSettings.Nick != null) { await SetNickAsync(loginSettings.Nick); } if (loginSettings.User != null) { await SetUserAsync(loginSettings.User); } while (IsLoggedIn == false) { await Task.Delay(50, ct); } foreach (var channel in loginSettings.Channels) { await JoinChannelAsync(channel); } }
public IrcBotConnection(ILineCommunicator lineCommunicator, IIrcLoginSettings settings) { _client = new IrcClient(lineCommunicator); _client.MessageReceived += OnMessageReceived; _loginSettings = settings; }