Ejemplo n.º 1
0
        private void OnFriendMsg(SteamFriends.FriendMsgCallback callback)
        {
            if (callback.EntryType == EChatEntryType.ChatMsg)
            {
                var sender = callback.Sender;

                Friend currentChatter = Chatters.FirstOrDefault(chatter => chatter.SteamID.AccountID == sender.AccountID);

                if (currentChatter == null)
                {
                    currentChatter = new Friend()
                    {
                        WelcomedDate       = DateTime.Now,
                        ChatState          = ChatState.NoInteraction,
                        SteamID            = sender,
                        IsReceivingAdvInfo = false
                    };

                    Chatters.Add(currentChatter);
                }

                TimeSpan timeSpan = DateTime.Now - currentChatter.WelcomedDate;
                if (timeSpan.Minutes >= 5)
                {
                    currentChatter.ChatState = ChatState.NoInteraction;
                }

                string responseMessage = String.Empty;
                if (BasicCommands.ContainsKey(callback.Message))
                {
                    responseMessage          = BasicCommands[callback.Message];
                    currentChatter.ChatState = ChatState.Welcomed;
                }
                else if (currentChatter.ChatState == ChatState.NoInteraction)
                {
                    currentChatter.ChatState = ChatState.Welcomed;
                    responseMessage          = WelcomeMessage;
                }
                else if (currentChatter.ChatState == ChatState.Welcomed)
                {
                    responseMessage = CommandNotFoundMessage;
                }

                SteamFriends.SendChatMessage(sender, EChatEntryType.ChatMsg, responseMessage);

                Console.WriteLine($"{SteamFriends.GetFriendPersonaName(sender)}: {callback.Message}");
                Console.WriteLine($"BOT: {responseMessage}");
            }
        }