private static CommandMessage GetMessage(IrcNetwork network, string text, string targetName, CommandProcessorAttribute attrib)
        {
            var split = ParseCommand(network, text, attrib);

            split.SetChannelFallback(network, targetName);

            var chan = split.ChannelName.HasText() ? network.GetChannel(split.ChannelName) : null;
            var user = split.UserName.HasText() ? network.GetUser(split.UserName) : null;

            return(new CommandMessage(split.Text.Trim(), chan, user, targetName));
        }
            public static void Me(IrcNetwork network, CommandMessage command)
            {
                string text       = network.CurrentUser.Nickname + " " + command.Text;
                var    ircMessage = new IrcMessage(network, MessageDirection.Sent, network.CurrentUser, IrcMessageType.Action, text);

                if (network.Parameters.IsChannelName(command.TargetName))
                {
                    var channel = network.GetChannel(command.TargetName);
                    channel.Ctcp.SendAction(command.Text);
                    Messenger.Send(new ChannelMessageSentMessage(channel, ircMessage));
                }
                else
                {
                    var user = network.GetUser(command.TargetName);
                    user.Ctcp.SendAction(command.Text);
                    Messenger.Send(new UserMessageSentMessage(user, ircMessage));
                }
            }
        private static void HandleNormalMessage(IrcNetwork network, string targetName, string text)
        {
            var ircMessage = new IrcMessage(network, MessageDirection.Sent, network.CurrentUser, IrcMessageType.Normal, text);

            if (targetName == null)
            {
                // don't show the sent message
                network.Client.SendRawData(text);
            }
            else if (network.Parameters.IsChannelName(targetName))
            {
                var channel = network.GetChannel(targetName);
                channel.SendMessage(text);
                Messenger.Send(new ChannelMessageSentMessage(channel, ircMessage));
            }
            else
            {
                var user = network.GetUser(targetName);
                user.SendMessage(text);
                Messenger.Send(new UserMessageSentMessage(user, ircMessage));
            }
        }