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}"); } }