Esempio n. 1
0
        public void TrackAgent(IClientAPI client, UUID hunter, UUID target)
        {
            bool isFriend = IsFriendOfUser(target, hunter);

            if (isFriend)
            {
                IFriendsModule module = m_Scene.RequestModuleInterface <IFriendsModule> ();
                if (module != null)
                {
                    int perms = module.GetFriendPerms(hunter, target);
                    if ((perms & (int)FriendRights.CanSeeOnMap) == (int)FriendRights.CanSeeOnMap)
                    {
                        UserInfo GUI =
                            client.Scene.RequestModuleInterface <IAgentInfoService> ().GetUserInfo(target.ToString());
                        if (GUI != null && GUI.IsOnline)
                        {
                            GridRegion region = m_Scene.GridService.GetRegionByUUID(
                                client.AllScopeIDs, GUI.CurrentRegionID);
                            if (region != null)     // just being cautious here
                            {
                                client.SendScriptTeleportRequest(client.Name, region.RegionName,
                                                                 GUI.CurrentPosition, GUI.CurrentLookAt);
                            }
                            region = null;  // clean up
                        }
                    }
                }
            }
        }
        public void TrackAgent(IClientAPI client, UUID hunter, UUID target)
        {
            bool isFriend = IsFriendOfUser(target, hunter);

            if (isFriend)
            {
                IFriendsModule module = m_Scenes[0].RequestModuleInterface <IFriendsModule>();
                if (module != null)
                {
                    int perms = module.GetFriendPerms(hunter, target);
                    if ((perms & (int)FriendRights.CanSeeOnMap) == (int)FriendRights.CanSeeOnMap)
                    {
                        UserInfo GUI =
                            client.Scene.RequestModuleInterface <IAgentInfoService>().GetUserInfo(target.ToString());
                        if (GUI != null)
                        {
                            GridRegion region = GetRegionUserIsIn(client.AgentId).GridService.GetRegionByUUID(
                                UUID.Zero, GUI.CurrentRegionID);

                            client.SendScriptTeleportRequest(client.Name, region.RegionName,
                                                             GUI.CurrentPosition,
                                                             GUI.CurrentLookAt);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        bool IsFriendOfUser(UUID friend, UUID requested)
        {
            if (friend == requested)
            {
                return(true);
            }
            if (m_friendsModule.GetFriendPerms(requested, friend) == -1)  //They aren't a friend
            {
                IScenePresence SP = m_Scene.GetScenePresence(friend);
                if (SP != null && SP.Scene.Permissions.IsGod(friend))  //Check is admin
                {
                    return(true);
                }

                return(false);
            }
            return(true);
        }