本文整理汇总了C#中Meebey.SmartIrc4net.IrcEventArgs类的典型用法代码示例。如果您正苦于以下问题:C# IrcEventArgs类的具体用法?C# IrcEventArgs怎么用?C# IrcEventArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IrcEventArgs类属于Meebey.SmartIrc4net命名空间,在下文中一共展示了IrcEventArgs类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteMethodFromRegex
public void ExecuteMethodFromRegex(IrcEventArgs e)
{
if(isRunning==true)
{
SendUnscramble(e);
}
foreach(KeyValuePair<string,string> pair in regexDictionary)
{
regex = new Regex(pair.Key);
if(regex.IsMatch(e.Data.Message))
{
string methodName = pair.Value;
//Get the method information using the method info class
MethodInfo mi = this.GetType().GetMethod(methodName);
object[] objargs = new object[1];
objargs[0]=e;
// //Invoke the method
// // (null- no paramyeseter for the method call
// // or you can pass the array of parameters...)
if(mi==null)
{
//client.SendMessage(SendType.Message, e.Data.Channel,"mi is null! "+e.Data.Message);
SharpBotClient.SharpBotClient.SendChannelMessag(e.Data.Channel,"handled from client");
}
else
{
mi.Invoke(this,objargs);
}
}
}
}
示例2: Execute
public override IEnumerable<string> Execute(IrcEventArgs e)
{
string args = "";
if (e.Data.MessageArray.Length > 1)
args = string.Join(" ", e.Data.MessageArray.Skip(1));
args = args.Replace("\'", "");
args = args.Replace(">", "");
args = args.Replace("<", "");
args = args.Replace("|", "");
try
{
var proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = @"python";
proc.StartInfo.Arguments = scriptPath + " \"" + args + "\"";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.StandardOutputEncoding = Encoding.UTF8;
proc.Start();
string data = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
return new[] {data};
}
catch
{
}
return null;
}
示例3: GetMatch
protected Match GetMatch(MessageType type, IrcEventArgs args)
{
string msg = args.Data.Message;
if (!msg.StartsWith(Prefix)) {
return null;
}
msg = msg.Substring(Prefix.Length);
var match = Attribute.Regex.Match(msg);
if (Attribute.Type != MessageType.All && Attribute.Type != type) {
return null;
}
if (!args.Data.Message.StartsWith(Prefix)) {
return null;
}
if (!match.Success) {
return null;
}
return match;
}
示例4: Execute
public override void Execute(IrcEventArgs args)
{
string nick = args.Data.Nick;
string fullName = args.Data.From;
if (args.Data.MessageArray.Length == 1)
{
PrintCommands(Bot.Commands, nick);
if (Bot.AdminUserRepository.IsAdminUser(fullName))
PrintCommands(Bot.AdminCommands, nick);
return;
}
if (args.Data.MessageArray.Length == 2)
{
if (!Bot.PluginManager.Plugins.Any(x => string.Equals(x.Name, args.Data.MessageArray[1], StringComparison.CurrentCultureIgnoreCase)))
throw new Exception(string.Format("Could not find the plugin with the name '{0}'",args.Data.MessageArray[1]));
BotPlugin plugin = Bot.PluginManager.Plugins.Find(x => string.Equals(x.Name, args.Data.MessageArray[1]));
PrintCommands(plugin.Commands, nick);
if (Bot.AdminUserRepository.IsAdminUser(fullName))
PrintCommands(plugin.AdminCommands, nick);
return;
}
throw new Exception("I'm not 100% sure what you were getting at by feeding me a ton of parameters...i'm just going to choke.");
}
示例5: Execute
public override void Execute(IrcEventArgs e)
{
if (e.Data.MessageArray.Count() < 3)
{
e.Data.Irc.SendMessage(SendType.Message, e.Data.Nick, "Missing parameters");
return;
}
User user = userService.GetAuthenticatedUser(e.Data.From);
if (user != null && user.UserLevel == 10)
{
int userLevel = 1;
if (e.Data.MessageArray.Count() > 3)
int.TryParse(e.Data.MessageArray[3], out userLevel);
if (userService.CreateUser(e.Data.MessageArray[1], e.Data.MessageArray[2], userLevel) > 0)
{
e.Data.Irc.SendMessage(SendType.Message, e.Data.Nick, "User created");
}
else
{
e.Data.Irc.SendMessage(SendType.Message, e.Data.Nick, "User already exists");
}
}
else
{
e.Data.Irc.SendMessage(SendType.Message, e.Data.Nick, "You do not have authorization to use this command");
return;
}
}
示例6: ProcessMessage
public override void ProcessMessage(IrcEventArgs e)
{
if (e.Data.MessageArray[0] == "!resetBlackjack")
{
Reset();
return;
}
if (CurrentState == States.NO_GAME && (e.Data.MessageArray[0]=="!jack" || e.Data.MessageArray[0] == "!blackjack"))
{
//start new game
currentPlayer = e.Data.Nick;
Deal();
CurrentState = States.CARDS_DEALT;
TellPlayerOfHands();
}
else if (CurrentState == States.CARDS_DEALT && e.Data.Nick == currentPlayer)
{
ParseCommand(e);
}
}
示例7: OnMessage
public static void OnMessage(object sender, IrcEventArgs e)
{
string[] foulwords = new string[1];
Console.ForegroundColor = ConsoleColor.Yellow;
//highlighting
if (e.Data.Message.Contains(Config.User) == true)
{
Console.ForegroundColor = ConsoleColor.Green;
System.Console.WriteLine(e.Data.From + " : " + e.Data.Message);
}
else if (e.Data.From.Contains(Config.User) == true)
{
Console.ForegroundColor = ConsoleColor.Red;
System.Console.Write(e.Data.From + ": ");
Console.ResetColor();
Console.Write(e.Data.Message + "\n");
}
else if (foulwords.Any(p => e.Data.Message.Contains(p)))
{
Console.ForegroundColor = ConsoleColor.Red;
System.Console.Write(e.Data.From + ": ");
Console.ResetColor();
Console.Write(e.Data.Message + "\n");
}
else
{
System.Console.Write(e.Data.From + ": ");
Console.ResetColor();
Console.Write(e.Data.Message + "\n");
}
}
示例8: Execute
public override void Execute(IrcEventArgs e)
{
string message = "";
// If parameter is given, show help message of command <parameter>
if (e.Data.MessageArray.Count() > 1 && commands.ContainsKey(commandIdentifier + e.Data.MessageArray[1]))
message = commands[commandIdentifier + e.Data.MessageArray[1]].Name + ": " + commands[commandIdentifier + e.Data.MessageArray[1]].Help;
else
{
// Else list available commands
message = "Available commands: ";
foreach (ICommand command in commands.Values.Distinct())
{
message += command.Name;
if (command.Aliases != null)
message += " (" + string.Join(", ", command.Aliases) + ")";
if (command != commands.Values.Last())
message += ", ";
}
}
e.Data.Irc.SendMessage(SendType.Message, e.Data.Channel, message);
}
示例9: Worker
protected override CommandCompletedEventArgs Worker(IrcEventArgs e)
{
Thread.Sleep(3000);
e.Data.Irc.SendMessage(SendType.Message, e.Data.Channel, "Async wait done");
return null;
}
示例10: Execute
public override void Execute(IrcEventArgs args)
{
var message = args.Data.MessageArray;
var channel = args.Data.Channel;
var nick = args.Data.Nick;
List<QuestionSet> sets = new List<QuestionSet>();
if(message.Length > 2)
{
for(int i = 2;i < message.Length;i++)
{
int i1 = i;
QuestionSet questionSetToFind = TriviaPlugin.QuestionSets.Find(x => x.QuestionSetName.StartsWith(message[i1]));
if(questionSetToFind != null)
{
sets.Add(questionSetToFind);
}
}
}
if (!TriviaPlugin.Games.ContainsKey(channel))
{
TriviaPlugin.Games.Add(channel,
sets.Count > 0 ? new TriviaGame(TriviaPlugin, channel, sets) : new TriviaGame(TriviaPlugin, channel));
}
TriviaPlugin.Games[channel].StartGame(nick);
}
示例11: Execute
public override void Execute(IrcEventArgs args)
{
string destination = string.Empty;
ChannelList channelList = new ChannelList();
AddChannelsFromMessage(args.Data.MessageArray, channelList);
if(args.Data.Type == ReceiveType.QueryMessage)
{
if (channelList.Count == 0)
{
var channels = TaskListPlugin.Repository.GetChannels();
channelList.AddRange(channels);
}
destination = args.Data.Nick;
} else if(args.Data.Type == ReceiveType.ChannelMessage)
{
var channel = args.Data.Channel;
if(channelList.Count == 0)
{
channelList.Add(channel);
}
destination = channel;
}
foreach (var channel in channelList)
{
ShowTaskListForChannel(channel, destination);
}
}
示例12: Execute
public override void Execute(IrcEventArgs args)
{
var channel = args.Data.Channel;
var user = args.Data.Nick;
string madeNewTaskList = string.Empty;
if(args.Data.MessageArray.Length < 3)
throw new Exception("Not enough parameters supplied for command.");
var taskListName = GetTaskListName(args.Data.MessageArray);
string taskText = string.Empty;
for(int i = 2;i < args.Data.MessageArray.Length; i++)
taskText += string.Format(" {0}", args.Data.MessageArray[i]);
TaskList list = TaskListPlugin.Repository.GetTaskList(taskListName);
if(list == null)
{
// todo interface out a concept for default status
list = TaskListPlugin.Repository.CreateNewTaskList(taskListName, user, channel,string.Empty);
madeNewTaskList = "new";
}
Task newTask = list.NewTask(taskText, user);
TaskListPlugin.SendMessage(string.Format("Added task to {0} TaskList {1} ({2} / {3} completed)",madeNewTaskList, list.TaskName, list.CompletedTasks(),list.Tasks.Count), channel);
}
示例13: Execute
public override void Execute(IrcEventArgs args)
{
List<QuestionSet> questionSets = new List<QuestionSet>();
var questionSetNodes = TriviaPlugin.PluginSettings.SelectNodes(QuestionSetXPath);
if(questionSetNodes == null)
throw new Exception("Could not find any question sets in Settings config");
foreach (XmlNode node in questionSetNodes)
{
string filePath = TriviaPlugin.Bot.FilePath + node.InnerText;
if (!string.IsNullOrEmpty(node.InnerText) && File.Exists(filePath))
{
string questonSetName;
if (node.Attributes[QuestionSetNameAttributeName] != null
&& !string.IsNullOrEmpty(node.Attributes[QuestionSetNameAttributeName].Value))
{
questonSetName = node.Attributes[QuestionSetNameAttributeName].Value;
}
else
{
questonSetName = node.InnerText;
}
QuestionSet set = new QuestionSet(filePath) { QuestionSetName = questonSetName };
questionSets.Add(set);
}
}
TriviaPlugin.QuestionSets = questionSets;
}
示例14: ShouldExecuteCommand
public override bool ShouldExecuteCommand(IrcEventArgs args)
{
var currentGame = TriviaPlugin.GetGameForChannel(args.Data.Channel);
return base.ShouldExecuteCommand(args)
&& currentGame != null && currentGame.CurrentState != GameState.Started;
}
示例15: Execute
public override IEnumerable<string> Execute(IrcEventArgs e)
{
string nick = "";
string message = "";
if (e.Data.MessageArray.Count() > 1)
{
nick = e.Data.MessageArray[1];
}
else
{
nick = store.GetUserSetting<string>(e.Data.Nick, "LastfmUsername");
if (string.IsNullOrWhiteSpace(nick))
nick = e.Data.Nick;
}
log.Info("Fetching now playing information for user \"" + nick + "\"");
try
{
message = FetchNowPlayingInfo(nick);
}
catch (Exception)
{
return new string[0];
}
return new[] { message };
}