public void listen(ChatMessage message) { string response; //New Chat Sender? if (message.Sender.Owner != null) { if (!Users.ContainsKey(message.Sender.Owner.Profile.Name)) { Users.Add(message.Sender.Owner.Profile.Name, new User(message.Sender.Owner.Profile.Name, this)); } response = currentState.getAIMLResponse(message.Content.Message, Users[message.Sender.Owner.Profile.Name], this); } else { if (!Users.ContainsKey(message.Sender.Username)) { Users.Add(message.Sender.Username, new User(message.Sender.Username, this)); } response = currentState.getAIMLResponse(message.Content.Message, Users[message.Sender.Username], this); } if (!response.Equals("")) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage(response))); } } }
public override void write(LogMessage message) { List <ChatMessage> messages = SystemLogFilter.filter(message); lock (OutgoingMessage) { foreach (ChatMessage m in messages) { OutgoingMessage.Enqueue(m); } } }
public void receive(ChatMessage message) { if (Status != BotStatus.Sleep) { string response; //New Chat Sender? if (message.Sender.Owner != null) { if (!Users.ContainsKey(message.Sender.Owner.Profile.Name)) { Users.Add(message.Sender.Owner.Profile.Name, new User(message.Sender.Owner.Profile.Name, this)); } response = currentState.getAIMLResponse(message.Content.Message, Users[message.Sender.Owner.Profile.Name], this); } else { if (!Users.ContainsKey(message.Sender.Username)) { Users.Add(message.Sender.Username, new User(message.Sender.Username, this)); } response = currentState.getAIMLResponse(message.Content.Message, Users[message.Sender.Username], this); } if (!response.Equals("")) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage(response))); } } if (!(currentState is AvailableState)) { nextState = BotState.StateFactory.getBotState("Available", this); } else { ((AvailableState)currentState).resetAttentionCounter(); } } }
public void receive(ChatMessage message) { if (message.Content.Message.ToLower().IndexOf("what time is it") >= 0) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage("It is now " + DateTime.Now.ToString("h:mm tt") + "."))); } } else if (message.Content.Message.ToLower().IndexOf("what date is today") >= 0) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage("Today is " + DateTime.Today.ToString("dddd, MMMM dd, yyyy") + "."))); } } else if (message.Content is CommandMessage) { ICommand receivedCommand = ((CommandMessage)message.Content).Command; if (receivedCommand is ChatCommand) { if (!chatHandler.execute(receivedCommand)) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage("The received command can not be successfully executed."))); } } } else { if (!CommandHandler.enqueue(receivedCommand)) { lock (OutgoingMessage) { OutgoingMessage.Enqueue(new ChatMessage(message.Source, message.Recipient, message.Sender, new TextMessage("The received command is not supported."))); } } } } }