Beispiel #1
0
        private void SendInstantMessages(object message)
        {
            GridInstantMessage im      = message as GridInstantMessage;
            ChatSession        session = m_groupData.GetSession(im.imSessionID);

            if (session == null)
            {
                return;
            }
            List <UUID> agentsToSendTo = new List <UUID>();

            foreach (ChatSessionMember member in session.Members)
            {
                if (member.HasBeenAdded)
                {
                    agentsToSendTo.Add(member.AvatarKey);
                }
                else
                {
                    IClientAPI client = GetActiveClient(member.AvatarKey);
                    if (client != null)
                    {
                        client.Scene.RequestModuleInterface <IEventQueueService>().ChatterboxInvitation(
                            session.SessionID
                            , session.Name
                            , im.fromAgentID
                            , im.message
                            , member.AvatarKey
                            , im.fromAgentName
                            , im.dialog
                            , im.timestamp
                            , im.offline == 1
                            , (int)im.ParentEstateID
                            , im.Position
                            , 1
                            , im.imSessionID
                            , true
                            , Utils.StringToBytes(session.Name)
                            , client.Scene.RegionInfo.RegionHandle
                            );
                    }
                    else
                    {
                        agentsToSendTo.Add(member.AvatarKey); //Forward it on, the other sim should take care of it
                    }
                }
            }
            m_msgTransferModule.SendInstantMessages(im, agentsToSendTo);
        }
Beispiel #2
0
        private void SendInstantMessages(object message)
        {
            GridInstantMessage      msg            = message as GridInstantMessage;
            List <GroupMembersData> members        = m_groupData.GetGroupMembers(UUID.Parse(msg.fromAgentID.ToString()), UUID.Parse(msg.imSessionID.ToString()));
            List <UUID>             agentsToSendTo = new List <UUID>();

            foreach (GroupMembersData member in members)
            {
                if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID, UUID.Parse(msg.imSessionID.ToString())))
                {
                    // Don't deliver messages to people who have dropped this session
                    if (m_debugEnabled)
                    {
                        m_log.DebugFormat("[GROUPS-MESSAGING]: {0} has dropped session, not delivering to them", member.AgentID);
                    }
                    continue;
                }
                agentsToSendTo.Add(member.AgentID);
            }
            m_msgTransferModule.SendInstantMessages(msg, agentsToSendTo);

            /*foreach (GroupMembersData member in m_groupData.GetGroupMembers(UUID.Parse(msg.fromAgentID.ToString()), UUID.Parse(msg.imSessionID.ToString())))
             * {
             *  if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID, UUID.Parse(msg.imSessionID.ToString())))
             *  {
             *      // Don't deliver messages to people who have dropped this session
             *      if (m_debugEnabled) m_log.DebugFormat("[GROUPS-MESSAGING]: {0} has dropped session, not delivering to them", member.AgentID);
             *      continue;
             *  }
             *
             *  msg.toAgentID = member.AgentID.Guid;
             *
             *  m_log.DebugFormat("[GROUPS-MESSAGING]: Delivering to {0}", member.AgentID);
             *  m_msgTransferModule.SendInstantMessage(msg, delegate(bool success)
             *  {
             *      if (!success && m_removeOfflineAgentsFromGroupIMs)
             *          m_groupData.AgentDroppedFromGroupChatSession(member.AgentID, UUID.Parse(msg.imSessionID.ToString()));
             *  });
             * }*/
        }