Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        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;
                }
            }
        }