<add key="IRCServerHostPort" value="6667" />\r
<add key="IRCChannelNames" value="channel1;channel2" />\r
<add key="IRCBotName" value="MyBot" />\r
+ <add key="IRCBotPassword" value="MyPassword" />\r
<add key="ChmPath" value="C:\IRC\TechBot\CHM" />\r
<add key="MainChm" value="kmarch.chm" />\r
<add key="NtstatusXml" value="C:\IRC\TechBot\ntstatus.xml" />\r
}\r
}\r
\r
+ private static string IRCBotPassword\r
+ {\r
+ get\r
+ {\r
+ string optionName = "IRCBotPassword";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
private static string ChmPath\r
{\r
get\r
IRCServerHostPort,\r
IRCChannelNames,\r
IRCBotName,\r
+ IRCBotPassword,\r
ChmPath,\r
MainChm,\r
NtstatusXml,\r
public const string PONG = "PONG";\r
public const string PRIVMSG = "PRIVMSG";\r
public const string USER = "USER";\r
+ public const string PASS = "PASS";\r
\r
public const string RPL_NAMREPLY = "353";\r
public const string RPL_ENDOFNAMES = "366";\r
public void ChangeNick(string nickname)\r
{\r
if (nickname == null)\r
- {\r
throw new ArgumentNullException("nickname", "Nickname cannot be null.");\r
- }\r
\r
/* NICK <nickname> [ <hopcount> ] */\r
SendMessage(new IrcMessage(IRC.NICK, nickname));\r
}\r
\r
+ /// <summary>\r
+ /// Submit password to identify user.\r
+ /// </summary>\r
+ /// <param name="password">Password of registered nick.</param>\r
+ private void SubmitPassword(string password)\r
+ {\r
+ if (password == null)\r
+ throw new ArgumentNullException("password", "Password cannot be null.");\r
+\r
+ /* PASS <password> */\r
+ SendMessage(new IrcMessage(IRC.PASS, password));\r
+ }\r
+\r
/// <summary>\r
/// Register.\r
/// </summary>\r
/// <param name="nickname">New nickname.</param>\r
+ /// <param name="password">Password. Can be null.</param>\r
/// <param name="realname">Real name. Can be null.</param>\r
- public void Register(string nickname, string realname)\r
+ public void Register(string nickname,\r
+ string password,\r
+ string realname)\r
{\r
if (nickname == null)\r
- {\r
throw new ArgumentNullException("nickname", "Nickname cannot be null.");\r
- }\r
firstPingReceived = false;\r
+ if (password != null)\r
+ SubmitPassword(password);\r
ChangeNick(nickname);\r
/* OLD: USER <username> <hostname> <servername> <realname> */\r
/* NEW: USER <user> <mode> <unused> <realname> */\r
private int port;\r
private string channelnames;\r
private string botname;\r
+ private string password;\r
private string chmPath;\r
private string mainChm;\r
private string ntstatusXml;\r
int port,\r
string channelnames,\r
string botname,\r
+ string password,\r
string chmPath,\r
string mainChm,\r
string ntstatusXml,\r
this.port = port;\r
this.channelnames = channelnames;\r
this.botname = botname;\r
+ if (password == null || password.Trim() == "")\r
+ this.password = null;\r
+ else\r
+ this.password = password;\r
this.chmPath = chmPath;\r
this.mainChm = mainChm;\r
this.ntstatusXml = ntstatusXml;\r
hostname, port));\r
client.Connect(hostname, port);\r
System.Console.WriteLine("Connected...");\r
- client.Register(botname, null);\r
+ client.Register(botname, password, null);\r
System.Console.WriteLine(String.Format("Registered as {0}...", botname));\r
JoinChannels();\r
\r
<add key="IRCServerHostPort" value="6667" />\r
<add key="IRCChannelNames" value="channel1;channel2" />\r
<add key="IRCBotName" value="MyBot" />\r
+ <add key="IRCBotPassword" value="MyPassword" />\r
<add key="ChmPath" value="C:\IRC\TechBot\CHM" />\r
<add key="MainChm" value="kmarch.chm" />\r
<add key="NtstatusXml" value="C:\IRC\TechBot\ntstatus.xml" />\r
private int IRCServerHostPort;\r
private string IRCChannelNames;\r
private string IRCBotName;\r
+ private string IRCBotPassword;\r
private string ChmPath;\r
private string MainChm;\r
private string NtstatusXml;\r
IRCServerHostPort = Int32.Parse(ConfigurationSettings.AppSettings["IRCServerHostPort"]);\r
IRCChannelNames = ConfigurationSettings.AppSettings["IRCChannelNames"];\r
IRCBotName = ConfigurationSettings.AppSettings["IRCBotName"];\r
+ IRCBotPassword = ConfigurationSettings.AppSettings["IRCBotPassword"];\r
ChmPath = ConfigurationSettings.AppSettings["ChmPath"];\r
MainChm = ConfigurationSettings.AppSettings["MainChm"];\r
NtstatusXml = ConfigurationSettings.AppSettings["NtstatusXml"];\r
IRCServerHostPort,\r
IRCChannelNames,\r
IRCBotName,\r
+ IRCBotPassword,\r
ChmPath,\r
MainChm,\r
NtstatusXml,\r