mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
90 lines
2.1 KiB
C#
90 lines
2.1 KiB
C#
using System;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace TechBot.Library
|
|
{
|
|
public abstract class Command
|
|
{
|
|
protected TechBotService m_TechBotService = null;
|
|
protected MessageContext m_Context = null;
|
|
protected string m_Params = null;
|
|
|
|
public TechBotService TechBot
|
|
{
|
|
get { return m_TechBotService; }
|
|
set { m_TechBotService = value; }
|
|
}
|
|
|
|
public MessageContext Context
|
|
{
|
|
get { return m_Context; }
|
|
set { m_Context = value; }
|
|
}
|
|
|
|
public virtual bool AnswerInPublic
|
|
{
|
|
get { return true; }
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
CommandAttribute commandAttribute = (CommandAttribute)
|
|
Attribute.GetCustomAttribute(GetType(), typeof(CommandAttribute));
|
|
|
|
return commandAttribute.Name;
|
|
}
|
|
}
|
|
|
|
public string Parameters
|
|
{
|
|
get { return m_Params; }
|
|
set { m_Params = value; }
|
|
}
|
|
|
|
protected virtual void Say()
|
|
{
|
|
TechBot.ServiceOutput.WriteLine(Context, string.Empty);
|
|
}
|
|
|
|
protected virtual void Say(string message)
|
|
{
|
|
TechBot.ServiceOutput.WriteLine(Context, message);
|
|
}
|
|
|
|
protected virtual void Say(string format , params object[] 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 virtual void Initialize()
|
|
{
|
|
}
|
|
|
|
public virtual void DeInitialize()
|
|
{
|
|
}
|
|
}
|
|
}
|