Ejemplo n.º 1
0
        public static bool ProcessRoomMessage(string msg, ChatRoomTabPage rm)
        {
            try
            {
                if ( msg.StartsWith(Leave) || msg.StartsWith(Part) )
                    rm.LeaveRoom();
                else if ( msg.StartsWith(Topic) )
                    rm.ChangeSubject(GetCommandValue(Topic, msg));
                else if ( msg.StartsWith(Subject) )
                    rm.ChangeSubject(GetCommandValue(Subject, msg));
                else if ( msg.StartsWith(Nick) )
                    rm.ChangeNickName(new JabberID(rm.Room.ToString(), GetCommandValue(Nick, msg)));
                else if ( msg.StartsWith(Invite) )
                    rm.Invite(JabberID.Parse(GetCommandValue(Invite, msg)));
                else if ( msg.StartsWith(Message) )
                {
                    string[] parts = GetCommandParts(msg);

                    if ( parts.Length < 3 )
                        throw new ArgumentException("Unsupported number of command arguments");

                    string[] messageContent = new string[parts.Length - 3];

                    Array.Copy(parts, 2, messageContent, 0, parts.Length - 2);
                    rm.SendPrivateMessage(parts[1], string.Join(" ", messageContent));
                }
                else if ( msg.StartsWith(Clear) )
                    rm.ClearMessageHistory();
                else
                    return false;

                return true;
            }
            catch ( Exception ex)
            {
                MessageBox.Show(string.Concat("Error processing command: ", ex.Message));
                return false;
            }
        }