[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("svn://svn.reactos.org/reactos/trunk")]
+ [global::System.Configuration.DefaultSettingValueAttribute("svn://svn.reactos.org/trunk/reactos")]
public string SVNRoot {
get {
return ((string)(this["SVNRoot"]));
<Value Profile="(Default)">C:\Ros\current\irc\TechBot\Resources\wm.xml</Value>
</Setting>
<Setting Name="SVNRoot" Type="System.String" Scope="Application">
- <Value Profile="(Default)">svn://svn.reactos.org/reactos/trunk</Value>
+ <Value Profile="(Default)">svn://svn.reactos.org/trunk/reactos</Value>
</Setting>
</Settings>
</SettingsFile>
\ No newline at end of file
<value>C:\Ros\current\irc\TechBot\Resources\wm.xml</value>
</setting>
<setting name="SVNRoot" serializeAs="String">
- <value>svn://svn.reactos.org/reactos/trunk</value>
+ <value>svn://svn.reactos.org/trunk/reactos</value>
</setting>
</TechBot.Commands.Common.Settings>
</applicationSettings>
public const string PRIVMSG = "PRIVMSG";\r
public const string USER = "USER";\r
public const string PASS = "PASS";\r
- public const string GHOST = "NICKSERV GHOST";\r
- public const string NOTICE = "NOTICE";\r
\r
public const string RPL_NAMREPLY = "353";\r
public const string RPL_ENDOFNAMES = "366";\r
- public const string ERR_NICKNAMEINUSE = "433";\r
\r
#endregion\r
\r
\r
#region Private fields\r
private bool firstPingReceived = false;\r
- private bool awaitingGhostDeath = false;\r
private System.Text.Encoding encoding = System.Text.Encoding.UTF8;\r
private TcpClient tcpClient;\r
private NetworkStream networkStream;\r
private LineBuffer messageStream;\r
private ArrayList ircCommandEventRegistrations = new ArrayList();\r
private ArrayList channels = new ArrayList();\r
- private string reqNickname;\r
- private string curNickname;\r
- private string password;\r
#endregion\r
\r
#region Public events\r
}\r
}\r
\r
- /// <summary>\r
- /// Nickname for the bot.\r
- /// </summary>\r
- public string Nickname\r
- {\r
- get\r
- {\r
- return curNickname;\r
- }\r
- }\r
#endregion\r
\r
#region Private methods\r
firstPingReceived = true;\r
}\r
\r
- /// <summary>\r
- /// Send a PONG message when a PING message is received.\r
- /// </summary>\r
- /// <param name="message">Received IRC message.</param>\r
- private void NoticeMessageReceived(IrcMessage message)\r
- {\r
- if (awaitingGhostDeath)\r
- {\r
- string str = string.Format("\ 2{0}\ 2 has been ghosted", reqNickname);\r
- if (message.Parameters.Contains(str))\r
- {\r
- ChangeNick(reqNickname);\r
- SubmitPassword(password);\r
- awaitingGhostDeath = false;\r
- }\r
- }\r
- }\r
-\r
/// <summary>\r
/// Process RPL_NAMREPLY message.\r
/// </summary>\r
}\r
}\r
\r
- /// <summary>\r
- /// Process ERR_NICKNAMEINUSE message.\r
- /// </summary>\r
- /// <param name="message">Received IRC message.</param>\r
- private void ERR_NICKNAMEINUSEMessageReceived(IrcMessage message)\r
- {\r
- try\r
- {\r
- if (message.Parameters == null)\r
- {\r
- System.Diagnostics.Debug.WriteLine(String.Format("Message has no parameters."));\r
- return;\r
- }\r
- \r
- /* Connect with a different name */\r
- string[] parameters = message.Parameters.Split(new char[] { ' ' });\r
- string nickname = parameters[1];\r
- ChangeNick(nickname + "__");\r
- }\r
- catch (Exception ex)\r
- {\r
- System.Diagnostics.Debug.WriteLine(String.Format("Ex. {0}", ex));\r
- }\r
- }\r
-\r
#endregion\r
\r
/// <summary>\r
}\r
/* Install PING message handler */\r
MonitorCommand(IRC.PING, new MessageReceivedHandler(PingMessageReceived));\r
- /* Install NOTICE message handler */\r
- MonitorCommand(IRC.NOTICE, new MessageReceivedHandler(NoticeMessageReceived));\r
/* Install RPL_NAMREPLY message handler */\r
MonitorCommand(IRC.RPL_NAMREPLY, new MessageReceivedHandler(RPL_NAMREPLYMessageReceived));\r
/* Install RPL_ENDOFNAMES message handler */\r
MonitorCommand(IRC.RPL_ENDOFNAMES, new MessageReceivedHandler(RPL_ENDOFNAMESMessageReceived));\r
- /* Install ERR_NICKNAMEINUSE message handler */\r
- MonitorCommand(IRC.ERR_NICKNAMEINUSE, new MessageReceivedHandler(ERR_NICKNAMEINUSEMessageReceived));\r
/* Start receiving data */\r
Receive();\r
}\r
}\r
else\r
{\r
+ \r
+\r
connected = false;\r
tcpClient.Close();\r
tcpClient = null;\r
if (nickname == null)\r
throw new ArgumentNullException("nickname", "Nickname cannot be null.");\r
\r
- Console.WriteLine("Changing nick to {0}\n", nickname);\r
- curNickname = nickname;\r
-\r
/* NICK <nickname> [ <hopcount> ] */\r
SendMessage(new IrcMessage(IRC.NICK, nickname));\r
}\r
\r
- /// <summary>\r
- /// Ghost nickname.\r
- /// </summary>\r
- /// <param name="nickname">Nickname.</param>\r
- public void GhostNick(string nickname,\r
- string password)\r
- {\r
- if (nickname == null)\r
- throw new ArgumentNullException("nickname", "Nickname cannot be null.");\r
-\r
- if (password == null)\r
- throw new ArgumentNullException("password", "Password cannot be null.");\r
-\r
- awaitingGhostDeath = true;\r
-\r
- /* GHOST <nickname> <password> */\r
- SendMessage(new IrcMessage(IRC.GHOST, nickname + " " + password));\r
- }\r
-\r
/// <summary>\r
/// Submit password to identify user.\r
/// </summary>\r
if (password == null)\r
throw new ArgumentNullException("password", "Password cannot be null.");\r
\r
- this.password = password;\r
-\r
/* PASS <password> */\r
SendMessage(new IrcMessage(IRC.PASS, password));\r
}\r
{\r
if (nickname == null)\r
throw new ArgumentNullException("nickname", "Nickname cannot be null.");\r
- reqNickname = nickname;\r
firstPingReceived = false;\r
if (password != null)\r
- {\r
SubmitPassword(password);\r
- }\r
ChangeNick(nickname);\r
/* OLD: USER <username> <hostname> <servername> <realname> */\r
/* NEW: USER <user> <mode> <unused> <realname> */\r
{\r
foreach (char c in command)\r
{\r
- if (!Char.IsLetter(c) && !Char.IsWhiteSpace(c))\r
+ if (!Char.IsLetter(c))\r
{\r
return false;\r
}\r
<userSettings>
<TechBot.IRCLibrary.Settings>
<setting name="CommandPrefix" serializeAs="String">
- <value>!</value>
+ <value>@</value>
</setting>
</TechBot.IRCLibrary.Settings>
</userSettings>
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("svn://svn.reactos.org/reactos/trunk")]
+ [global::System.Configuration.DefaultSettingValueAttribute("svn://svn.reactos.org/trunk/reactos")]
public string SVNRoot {
get {
return ((string)(this["SVNRoot"]));
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("!")]
+ [global::System.Configuration.DefaultSettingValueAttribute("@")]
public string CommandPrefix {
get {
return ((string)(this["CommandPrefix"]));
<Value Profile="(Default)">C:\Ros\current\irc\TechBot\Resources\wm.xml</Value>
</Setting>
<Setting Name="SVNRoot" Type="System.String" Scope="Application">
- <Value Profile="(Default)">svn://svn.reactos.org/reactos/trunk</Value>
+ <Value Profile="(Default)">svn://svn.reactos.org/trunk/reactos</Value>
</Setting>
<Setting Name="CommandPrefix" Type="System.String" Scope="Application">
- <Value Profile="(Default)">!</Value>
+ <Value Profile="(Default)">@</Value>
</Setting>
</Settings>
</SettingsFile>
\ No newline at end of file
m_IrcClient.Connect(hostname, port);
m_IrcClient.Register(botname, password, null);
- Console.WriteLine("Registered as {0}...", m_IrcClient.Nickname);
-
- /* Did we get the nick we wanted? */
- if (m_IrcClient.Nickname != botname)
- {
- /* there must have been an existing one, kill it */
- m_IrcClient.GhostNick(botname, password);;
- }
-
+ Console.WriteLine("Registered as {0}...", botname);
JoinChannels();
while (!isStopped)
injectMessage,
GetMessageSource(context)));
InjectMessage(context,
- injectMessage);
+ injectMessage);
}
else
{
<value>C:\Ros\current\irc\TechBot\Resources\wm.xml</value>
</setting>
<setting name="SVNRoot" serializeAs="String">
- <value>svn://svn.reactos.org/reactos/trunk</value>
+ <value>svn://svn.reactos.org/trunk/reactos</value>
</setting>
<setting name="CommandPrefix" serializeAs="String">
- <value>!</value>
+ <value>@</value>
</setting>
</TechBot.Library.Settings>
</applicationSettings>
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TechBot.Commands.MSDN", "TechBot.Commands.MSDN\TechBot.Commands.MSDN.csproj", "{ADBF1ED6-A586-4707-BD59-4CD53448D0FE}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TechBot.Commands.RBuild", "TechBot.Commands.RBuild\TechBot.Commands.RBuild.csproj", "{D676FEDE-62DD-4B4D-94C6-308598E827F9}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
{ADBF1ED6-A586-4707-BD59-4CD53448D0FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ADBF1ED6-A586-4707-BD59-4CD53448D0FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ADBF1ED6-A586-4707-BD59-4CD53448D0FE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D676FEDE-62DD-4B4D-94C6-308598E827F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D676FEDE-62DD-4B4D-94C6-308598E827F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D676FEDE-62DD-4B4D-94C6-308598E827F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D676FEDE-62DD-4B4D-94C6-308598E827F9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
</sectionGroup>
</configSections>
<appSettings>
- <add key="IRCServerHostName" value="irc.freenode.net" />
+ <add key="IRCServerHostName" value="irc.eu.freenode.net" />
<add key="IRCServerHostPort" value="6667" />
- <add key="IRCChannelNames" value="reactos,reactos-dev,reactos-testers" />
+ <add key="IRCChannelNames" value="channel1;channel2" />
<add key="IRCBotName" value="MyBot" />
<add key="IRCBotPassword" value="MyPassword" />
<add key="ChmPath" value="C:\IRC\TechBot\CHM" />
<add key="WinerrorXml" value="C:\IRC\TechBot\winerror.xml" />
<add key="HresultXml" value="C:\IRC\TechBot\hresult.xml" />
<add key="WmXml" value="C:\IRC\TechBot\wm.xml" />
- <add key="SvnCommand" value="svn co svn://svn.reactos.org/reactos/trunk" />
+ <add key="SvnCommand" value="svn co svn://svn.reactos.org/trunk/reactos" />
<add key="BugUrl" value="http://www.reactos.org/bugzilla/show_bug.cgi?id={0}" />
<add key="WineBugUrl" value="http://bugs.winehq.org/show_bug.cgi?id={0}" />
<add key="SambaBugUrl" value="https://bugzilla.samba.org/show_bug.cgi?id={0}" />
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
+<project name="ReactOS" makefile="makefile-amd64.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
+ <xi:include href="config-amd64.rbuild">
+ <xi:fallback>
+ <xi:include href="config-amd64.template.rbuild" />
+ </xi:fallback>
+ </xi:include>
+
+ &nb