private async void ObserveChatAsync(RepeatedField <ChatReceived> chatsReceived, int frame) { foreach (var chatReceived in chatsReceived) { var chat = new Chat.Chat { botName = Self.PlayerName, message = chatReceived.Message, time = DateTimeOffset.Now.ToUnixTimeMilliseconds(), user = Enemy.PlayerName }; if (chatReceived.PlayerId == Self.PlayerId) { Console.WriteLine($"{frame} sharkbot chat: {chatReceived.Message}"); ChatHistory.MyChatHistory[frame] = chatReceived.Message; if (ApiEnabled) { UpdateChatAsync(chat); } } else { Console.WriteLine($"{frame} enemy chat: {chatReceived.Message}"); ChatHistory.EnemyChatHistory[frame] = chatReceived.Message; if (string.IsNullOrEmpty(ActiveChatData.EnemyName)) { ActiveChatData.EnemyName = EnemyNameService.GetNameFromChat(chat.message, EnemyPlayerManager.Enemies); } GetChatResponseAsync(chat, frame); } //GetChatResponseAsync(chat, frame); // TODO: remove this, this is for testing } }
void OnOwnerLeft(Chat.Chat chat, Chat.IChatOwnerInfo owner) { if (chat == null) { throw new ArgumentNullException(nameof(chat)); } }
public void ChatUnitTest() { Client[] clients = new Client[2]; Chat.Chat[] chats = new Chat.Chat[2]; Mock <IUserMethods>[] clientMocks = new Mock <IUserMethods> [2]; Mock <IUserMethods>[] chatMock = new Mock <IUserMethods> [2]; string[] names = new string[] { "Vlad", "Bill" }; int[] ports = new int[] { 3011, 4007 }; IPEndPoint iPEndPointVlad = null; IPEndPoint iPEndPointBill = null; foreach (var iPAdress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (iPAdress.AddressFamily == AddressFamily.InterNetwork) { iPEndPointVlad = new IPEndPoint(iPAdress, 3011); iPEndPointBill = new IPEndPoint(iPAdress, 4007); break; } } for (int i = 0; i < 2; i++) { clientMocks[i] = new Mock <IUserMethods>(); chatMock[i] = new Mock <IUserMethods>(); clientMocks[i].Setup(r => r.ReadName()).Returns(names[i]); clientMocks[i].Setup(q => q.ReadPort()).Returns(ports[i]); clients[i] = new Client(new StringMethods(), clientMocks[i].Object); } chatMock[0].Setup(l => l.ReadMessage()).Returns("connect"); clientMocks[0].Setup(l => l.ReadIPEndPoint()).Returns(iPEndPointBill); chatMock[1].Setup(p => p.ReadMessage()).Returns(() => { Thread.Sleep(50); return("exit"); }); chats[0] = new Chat.Chat(new StringMethods(), chatMock[0].Object); Thread thread = new Thread(() => chats[0].P2PChat(clients[0])); thread.Start(); chats[1] = new Chat.Chat(new StringMethods(), chatMock[1].Object); chats[1].P2PChat(clients[1]); Assert.AreEqual(1, chats[0].ConnectedClientsHistory.Count); Assert.AreEqual(1, chats[1].ConnectedClientsHistory.Count); }
private async void UpdateChatAsync(Chat.Chat chat) { var chatRequest = new ChatRequest { chat = chat, type = "starcraft", conversationName = ConversationName, requestTime = DateTime.Now }; var jsonString = JsonConvert.SerializeObject(chatRequest); var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); try { var response = await HttpClient.PutAsync("https://localhost:44311/api/chatupdate", httpContent); // TODO: load url from configuration, have option to disable response.EnsureSuccessStatusCode(); } catch (Exception) { } }
private bool GetGameResponse(Chat.Chat chat, int frame) { var lower = " " + chat.message.ToLower() + " "; foreach (var chatData in ChatDataService.DefaultChataData) { if (ChatResponseTimeReady(chatData, frame)) { var matchData = MatchesTrigger(lower, chatData.Triggers); if (matchData.Success) { chatData.LastResponseFrame = frame; LastResponseTimes[chatData.Type] = frame; var message = ChatDataService.GetChatMessage(chatData, matchData, ActiveChatData.EnemyName); ChatService.SendChatMessages(message); return(true); } } } return(false); }
private async void GetChatResponseAsync(Chat.Chat chat, int frame) { if (GetGameResponse(chat, frame)) { return; } if (ApiEnabled) { var chatRequest = new ChatRequest { chat = chat, type = "starcraft", conversationName = ConversationName, requestTime = DateTime.Now }; var jsonString = JsonConvert.SerializeObject(chatRequest); var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); try { var response = await HttpClient.PutAsync("https://localhost:44311/api/chat", httpContent); // TODO: load url from configuration response.EnsureSuccessStatusCode(); var jsonResponse = await response.Content.ReadAsStringAsync(); var chatResponse = JsonConvert.DeserializeObject <ChatResponse>(jsonResponse); if (chatResponse.confidence > .5) { ChatService.SendChatMessages(chatResponse.response); } } catch (Exception) { } } }
void OnOwnerJoined(Chat.Chat chat, Chat.IChatOwnerInfo owner) { }
void OnNewMessage(Chat.Chat chat, Chat.Entry entry) { }