- miscellaneous small fixes
[reactos.git] / irc / TechBot / TechBot.Library / Commands / Base / Command.cs
index 839475b..a822e4c 100644 (file)
@@ -1,4 +1,5 @@
 using System;
 using System;
+using System.Text.RegularExpressions;
 
 namespace TechBot.Library
 {
 
 namespace TechBot.Library
 {
@@ -6,6 +7,7 @@ namespace TechBot.Library
     {
         protected TechBotService m_TechBotService = null;
         protected MessageContext m_Context = null;
     {
         protected TechBotService m_TechBotService = null;
         protected MessageContext m_Context = null;
+        protected string m_Params = null;
 
         public TechBotService TechBot
         {
 
         public TechBotService TechBot
         {
@@ -19,6 +21,11 @@ namespace TechBot.Library
             set { m_Context = value; }
         }
 
             set { m_Context = value; }
         }
 
+        public virtual bool AnswerInPublic
+        {
+            get { return false; }
+        }
+
         public string Name
         {
             get
         public string Name
         {
             get
@@ -30,10 +37,15 @@ namespace TechBot.Library
             }
         }
 
             }
         }
 
-        public void ParseParameters(string paramaters)
+        public string Parameters
+        {
+            get { return m_Params; }
+            set { m_Params = value; }
+        }
+
+        protected virtual void Say()
         {
         {
-            ParametersParser parser = new ParametersParser(paramaters, this);
-            parser.Parse();
+            TechBot.ServiceOutput.WriteLine(Context, string.Empty);
         }
 
         protected virtual void Say(string message)
         }
 
         protected virtual void Say(string message)
@@ -46,6 +58,33 @@ namespace TechBot.Library
             TechBot.ServiceOutput.WriteLine(Context, String.Format(format, args));
         }
 
             TechBot.ServiceOutput.WriteLine(Context, String.Format(format, args));
         }
 
+        public void Run()
+        {
+            if (Context is ChannelMessageContext)
+            {
+                if (AnswerInPublic)
+                {
+                    ExecuteCommand();
+                }
+                else
+                {
+                    Say("Sorry, I only respond '{0}' in private , PM me!", Name);
+                }
+            }
+            else
+            {
+                ExecuteCommand();
+            }
+        }
+
         public abstract void ExecuteCommand();
         public abstract void ExecuteCommand();
+
+        public virtual void Initialize()
+        {
+        }
+
+        public virtual void DeInitialize()
+        {
+        }
     }
 }
     }
 }