public void Handler(object sender, ReceivedCommandEventArgs e)
{
if (e.Arguments.Length < 4)
{
e.User.ErrorNeedMoreParams(CMD);
return;
}
if (e.User.Level != Authorizations.Connecting || e.User.HasSessionFlag("PassedUser"))
{
e.User.ErrorAlreadyRegistered(CMD);
return;
}
e.User.Mask.Username = e.User.MakeUsername(e.Arguments[0]);
e.User.Gecos = e.Arguments[3];
if (!e.User.HasSessionFlag("PassedNick") || e.User.HasSessionFlag("WaitForCap"))
{
e.User.SetSessionFlag("PassedUser");
return;
}
e.User.ClearSessionFlag("PassedNick");
e.User.OnConnected();
}