private void ClientOnPrivateMessage(string from, string to, string message) { // we never want to respond to ourself... if (string.Equals(from, Name, StringComparison.OrdinalIgnoreCase)) { return; } Console.WriteLine("private message received"); ISession session = new Session(null, Name); foreach (var handler in _privateResponderHandlers) { var result = HandlePrivateCommand(session, message, from, handler.Key, handler.Value); if (result) { break; } } }
private void ClientOnMessageReceived(Message message, string room) { // we never want to respond to ourself... if (string.Equals(message.User.Name, Name, StringComparison.OrdinalIgnoreCase)) { return; } Console.WriteLine("message received"); var match = Regex.Match(message.Content, string.Format(@"^(?<name>@?{0}\b)\s+(?<message>\b.*\b)", Name), DefaultRegexOptions); ISession session = new Session(message, Name); Dictionary<string, MessageHandler> handlers; string messageBody; if (match.Success) { handlers = _responderHandlers; messageBody = match.ValueFor("message"); } else { handlers = _listenerHandlers; messageBody = message.Content; } foreach (var handler in handlers) { var result = HandleCommand(session, messageBody, room, handler.Key, handler.Value); if (result) { break; } } }