private void OnIrcStatement(object sender, IrcUnknownStatementEventArgs e) { var @params = e.Data.Parameters; IrcString nickname; switch (e.Data.Command) { case "311": if (@params.Count >= 4) { nickname = @params[1]; if (Pending.ContainsKey(nickname)) { Pending[nickname].Identity.Nickname = nickname; Pending[nickname].Identity.Username = @params[2]; Pending[nickname].Identity.Hostname = @params[3]; } } break; case "330": if (@params.Count >= 3 && Pending.ContainsKey(@params[1])) { Pending[@params[1]].Account = @params[2]; } break; case "318": nickname = @params[1]; if (!Pending.TryGetValue(nickname, out var data)) { break; } Pending.Remove(nickname); foreach (var callback in data.Callbacks) { callback.Invoke(data); } break; } }
protected void RaiseGotUnknownIrcStatement(IrcUnknownStatementEventArgs e) { Dispatch(GotUnknownIrcStatement, e); }
protected virtual void OnGotUnknownIrcStatement(IrcUnknownStatementEventArgs e) { RaiseGotUnknownIrcStatement(e); }