示例#1
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);
            }
        }