示例#1
0
 private static void VoteThread()
 {
     Poll[] pollArray = ActivePolls.ToArray();
     for (int i = 0; i < pollArray.Length; i++)
     {
         if (pollArray[i].TimesUp())
         {
             var msg = EndPoll(pollArray[i]);
             IRCClient.SendIRCAnPrintConsoleMessage(msg);
         }
     }
 }
示例#2
0
        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);
        }
示例#3
0
        //Handle Incoming IRC Messages
        public static bool HandleMessages(IRCMessage pMessageInfo)
        {
            var message = pMessageInfo.message.ToLower();

            var result = false;
            //New Polls?
            var split = message.Split(new String[] { "!newpoll" }, StringSplitOptions.None);

            if (split.Length > 1)
            {
                //New Poll Detected.
                var nameAndOptions = split[1].Split(',');
                if (nameAndOptions.Length > 2)
                {
                    String name = nameAndOptions[0].Trim();
                    var    poll = new Poll(name, "!" + name);
                    for (int i = 1; i < nameAndOptions.Length; i++)
                    {
                        poll.AddOption(nameAndOptions[i]);
                    }

                    StartPoll(poll);

                    var Options = String.Join(" OR ", nameAndOptions, 1, nameAndOptions.Length - 1);

                    IRCClient.SendIRCAnPrintConsoleMessage(name + " Poll Created!!!");
                    IRCClient.SendIRCAnPrintConsoleMessage("Type !" + name + " and one of these options [" + Options + "] to vote");
                    result = true;
                }
                else
                {
                    IRCClient.SendIRCAnPrintConsoleMessage("Not Enough Poll Options >.<");
                    //Print Angry Message
                }
            }

            //End Polls?
            var split2 = message.Split(new String[] { "!endpoll" }, StringSplitOptions.None);

            if (split2.Length > 1)
            {
                var poll = ActivePolls.FirstOrDefault(w => split2[1].Contains(w.PollName));

                //New Poll Detected.
                if (poll != null)
                {
                    var msg = EndPoll(poll);
                    IRCClient.SendIRCAnPrintConsoleMessage(msg);
                    result = true;
                }
                else
                {
                    IRCClient.SendIRCAnPrintConsoleMessage("Poll Not Found >.<");
                    //Print Angry Message
                }
            }


            foreach (var poll in ActivePolls)
            {
                if (poll.HandleMessages(pMessageInfo))
                {
                    result = true;
                }
            }
            return(result);
        }
示例#4
0
        //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);
            }
        }