public ServerErrorMessage GetServerError(IRCErrorCode errorCode, string match) { GetError error = new GetError(); error.Error = errorCode; error.Match = match; ServerReplyEvent += (sender, e) => HandleError(sender, e, error); error.Ready.Wait(TimeSpan.FromMilliseconds(5000)); return(error.Result); }
private void HandleError(object sender, IReply message, GetError error) { bool errorFound = false; Regex errorRegex = new Regex(error.Match); if (message.GetType() == typeof(ServerErrorMessage)) { ServerErrorMessage msg = (ServerErrorMessage)message; errorFound = error.Error.Equals(msg.ErrorCode); if (errorFound && errorRegex.IsMatch(msg.Message)) { error.Result = msg; error.Ready.Set(); } } }