protected internal void ProcessMessageNumericError(IrcMessage message)
{
Debug.Assert(message.Parameters[0] != null);
// Extract error parameters and message text from message parameters.
Debug.Assert(message.Parameters[1] != null);
var errorParameters = new List<string>();
string errorMessage = null;
for (var i = 1; i < message.Parameters.Count; i++)
{
if (i + 1 == message.Parameters.Count || message.Parameters[i + 1] == null)
{
errorMessage = message.Parameters[i];
break;
}
errorParameters.Add(message.Parameters[i]);
}
Debug.Assert(errorMessage != null);
OnProtocolError(new IrcProtocolErrorEventArgs(int.Parse(message.Command), errorParameters, errorMessage));
}