public static bool HandleMessages(IRCMessage pMessageInfo) { //New Polls? IRCClient.CheckCommand(pMessageInfo, new String[] { "!newpoll" }, x => { if (x.NumberOfParameters > 2) { String name = x.commandParamSeperated[0].Trim(); List <String> pollOptions = new List <string>(); for (int i = 1; i < x.NumberOfParameters; i++) { pollOptions.Add(x.commandParamSeperated[i]); } MemorySystem._instance.NewPoll(name, pollOptions.ToArray(), DateTime.Now.AddMinutes(5)); var Options = String.Join(" OR ", pollOptions); IRCClient.SendIRCAnPrintConsoleMessage(name + " Poll Created!!!"); IRCClient.SendIRCAnPrintConsoleMessage("Type !" + name + " and one of these options [" + Options + "] to vote"); } else { IRCClient.SendIRCAnPrintConsoleMessage("Not Enough Poll Options >.<"); //Print Angry Message } }); IRCClient.CheckCommand(pMessageInfo, new String[] { "!endpoll" }, x => { var msg = MemorySystem._instance.EndPoll(x.commandParam); if (msg == null) { IRCClient.SendIRCAnPrintConsoleMessage("Poll Not Found >.<"); } else { IRCClient.SendIRCAnPrintConsoleMessage(msg); } }); IRCClient.CheckCommand(pMessageInfo, MemorySystem._instance.CurrentPolls(), x => { MemorySystem._instance.AddUserToPollWithOption(pMessageInfo.command, pMessageInfo.userName, pMessageInfo.commandParam); //Handle Voting On Poll Via SQLite }); return(false); }
//Handle Incoming IRC Messages public static bool HandleMessages(IRCMessage pMessageInfo) { try { if (!ActiveUsers.Contains(pMessageInfo.userName)) { ActiveUsers.Add(pMessageInfo.userName); //Shout out DateTime date = MemorySystem._instance.UsersLastActiveDate(pMessageInfo.userName); if (date != DateTime.MinValue) { IRCClient.PrintConsoleMessage(pMessageInfo.userName + " is back. Last seen " + date.ToShortDateString()); } } LoadSettings(); var userName = pMessageInfo.userName.ToLower(); var message = pMessageInfo.message.ToLower(); var result = false; { var split = message.Split(new String[] { "!voice" }, StringSplitOptions.None); if (split.Length > 1) { if (String.IsNullOrEmpty(split[1])) { IRCClient.SendIRCAnPrintConsoleMessage("!Avaliable Voices are: " + String.Join(",", Sync.voiceArray)); } else { var user = ListOfUserSettings.FirstOrDefault(x => x.UserName == userName); if (user != null) { user.Voice = split[1]; } else { ListOfUserSettings.Add(new UserSettings() { UserName = userName, Voice = split[1] }); } SaveSettings(); } } } { var split = message.Split(new String[] { "!lexicon" }, StringSplitOptions.None); if (split.Length > 1) { var user = ListOfUserSettings.FirstOrDefault(x => x.UserName == userName); if (user != null) { user.Lexicon = split[1].Trim(); } else { ListOfUserSettings.Add(new UserSettings() { UserName = userName, Lexicon = split[1].Trim() }); } SaveSettings(); SyncPool.ReloadLexicons(); } } IRCClient.CheckCommand(pMessageInfo, new string[] { "!points" }, x => { IRCClient.SendIRCAnPrintConsoleMessage(MemorySystem._instance.GetUserPoints()); }); return(result); } catch (Exception ex) { Logger.Log(ex.ToString()); return(false); } }