private void InitHandler()
{
IrcRegisterHandler(ReplyCode.RPL_WELCOME, HandleSuccessfulAuth);
IrcRegisterHandler("PING", HandlePing);
IrcRegisterHandler("PONG", HandlePong);
IrcRegisterHandler("PRIVMSG", HandlePrivmsg);
IrcRegisterHandler("NOTICE", HandleNotice);
IrcRegisterHandler(ReplyCode.ERR_BANNEDFROMCHAN, HandleChannelBan);
IrcRegisterHandler(ReplyCode.ERR_BADCHANNELKEY, HandleNoChannelPassword);
IrcRegisterHandler(ReplyCode.RPL_WHOISCHANNELS, HandleMWhois);
IrcRegisterHandler(ReplyCode.RPL_WHOISSERVER, HandleWhoisServer);
IrcRegisterHandler(ReplyCode.RPL_ENDOFWHOIS, HandleEndOfWhois);
IrcRegisterHandler(ReplyCode.ERR_UNKNOWNCOMMAND, HandleUnknownCommand);
IrcRegisterHandler(ReplyCode.ERR_NICKNAMEINUSE, HandleNickError);
IrcRegisterHandler(439, HandleWaitingForConnection);
IrcRegisterHandler(ReplyCode.ERR_NOTREGISTERED, HandleNotRegistered);
IrcRegisterHandler(ReplyCode.ERR_NONICKNAMEGIVEN, HandleNoNickName);
IrcRegisterHandler("JOIN", HandleIrcJoin);
IrcRegisterHandler("PART", HandleIrcLeft);
IrcRegisterHandler("KICK", HandleIrcKick);
IrcRegisterHandler("QUIT", HandleIrcQuit);
IrcRegisterHandler("NICK", HandleNewNick);
IrcRegisterHandler("MODE", HandleIrcMode);
IrcRegisterHandler("TOPIC", HandleIrcTopic);
IrcRegisterHandler("INVITE", HandleIrcInvite);
IrcRegisterHandler(ReplyCode.RPL_NAMREPLY, HandleNameList);
IrcRegisterHandler(ReplyCode.RPL_ENDOFNAMES, HandleEndNameList);
IrcRegisterHandler(ReplyCode.ERR_ERRONEUSNICKNAME, HandleErrorNewNickName);
IrcRegisterHandler(ReplyCode.ERR_UNAVAILRESOURCE, HandleNicknameWhileBannedOrModeratedOnChannel);
IrcRegisterHandler(ReplyCode.ERR_INVITEONLYCHAN, HandleCannotJoinChannel);
IrcRegisterHandler(ReplyCode.RPL_TOPIC, HandleInitialTopic);
IrcRegisterHandler(ReplyCode.ERR_NEEDMOREPARAMS, HandleNeedMoreParams);
IrcRegisterHandler(ReplyCode.ERR_KEYSET, HandleKeySet);
IrcRegisterHandler(ReplyCode.ERR_CHANOPRIVSNEEDED, HandleChanopPrivsNeeded);
IrcRegisterHandler(460, HandleChanopPrivsNeeded);
IrcRegisterHandler(ReplyCode.ERR_USERNOTINCHANNEL, HandleUserNotinChannel);
IrcRegisterHandler(ReplyCode.ERR_UNKNOWNMODE, HandleUnknownMode);
IrcRegisterHandler(ReplyCode.ERR_NOSUCHNICK, HandleNoSuchNick);
IrcRegisterHandler(499, HandleNotAChannelOwner);
IrcRegisterHandler(482, HandleOtherKickError);
IrcRegisterHandler(972, HandleOtherKickError);
IrcRegisterHandler(974, HandleNotAChannelAdmin);
Task.Factory.StartNew(() =>
{
var asms = sAddonManager.Addons[_servername].Assemblies.ToDictionary(v => v.Key, v => v.Value);
Parallel.ForEach(asms, asm =>
{
var types = asm.Value.GetTypes();
Parallel.ForEach(types, type =>
{
var methods = type.GetMethods(BindingFlags.Public | BindingFlags.Static);
IrcProcessMethods(methods);
});
});
});
Log.WriteLine();
Log.Notice("Network", sLConsole.GetString("All of IRC handlers are registered."));
}