Esempio n. 1
0
        private bool PrepareSceneForConnection(UUID sessionId, UUID secureSessionId, UUID sceneId, UserAccount account, out string reason)
        {
            Scene scene = m_scenes[sceneId];

            AgentCircuitData agent = new AgentCircuitData();

            agent.AgentID         = account.PrincipalID;
            agent.firstname       = account.FirstName;
            agent.lastname        = account.LastName;
            agent.SessionID       = sessionId;
            agent.SecureSessionID = secureSessionId;
            agent.circuitcode     = sessionId.CRC();
            agent.BaseFolder      = UUID.Zero;
            agent.InventoryFolder = UUID.Zero;
            agent.startpos        = new Vector3(0, 0, 0); // TODO Fill in region start position
            agent.CapsPath        = "http://localhost/";
            AvatarData avatar = scene.AvatarService.GetAvatar(account.PrincipalID);

            if (avatar != null)
            {
                agent.Appearance = avatar.ToAvatarAppearance(account.PrincipalID);
            }

            if (agent.Appearance == null)
            {
                m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname);
                agent.Appearance = new AvatarAppearance();
            }

            return(scene.NewUserConnection(agent, 0, out reason));
        }
Esempio n. 2
0
        public AvatarAppearance GetAppearance(UUID userID)
        {
            AvatarData avatar = GetAvatar(userID);

            if (avatar == null)
            {
                return(null);
            }
            return(avatar.ToAvatarAppearance(userID));
        }
Esempio n. 3
0
        public AvatarAppearance GetAppearance(UUID principalID)
        {
            AvatarData avatar = GetAvatar(principalID);

            if (avatar == null || avatar.Data.Count == 0)
            {
                return(null);
            }
            return(avatar.ToAvatarAppearance(principalID));
        }
Esempio n. 4
0
        public virtual AvatarAppearance GetAppearance(UUID userID)
        {
            MainConsole.Instance.Info("[AvatarServiceConnector] GetAppearance");
            AvatarData avatar = GetAvatar(userID);

            if (avatar == null)
            {
                return(null);
            }
            return(avatar.ToAvatarAppearance(userID));
        }
Esempio n. 5
0
        object EventManager_OnGenericEvent(string FunctionName, object parameters)
        {
            if (FunctionName == "SetAppearance")
            {
                object[]   p          = (object[])parameters;
                UUID       avatarID   = (UUID)p[0];
                AvatarData avatarData = (AvatarData)p[1];

                AvatarAppearance app = avatarData.ToAvatarAppearance(avatarID);
                CheckForBannedViewer(avatarID, app.Texture);
            }
            return(null);
        }
Esempio n. 6
0
        public bool TryGetAvatarAppearance(UUID avatarId, out AvatarAppearance appearance)
        {
            AvatarData avatar = m_scene.AvatarService.GetAvatar(avatarId);

            //if ((profile != null) && (profile.RootFolder != null))
            if (avatar != null)
            {
                appearance = avatar.ToAvatarAppearance(avatarId);
                return(true);
            }

            m_log.ErrorFormat("[APPEARANCE]: Appearance not found for {0}, creating default", avatarId);
            appearance = CreateDefault(avatarId);
            return(false);
        }
Esempio n. 7
0
        private AvatarAppearance GetAppearance(UUID target, Scene scene)
        {
            if (m_appearanceCache.ContainsKey(target))
            {
                return(m_appearanceCache[target]);
            }

            AvatarData adata = scene.AvatarService.GetAvatar(target);

            if (adata != null)
            {
                AvatarAppearance x = adata.ToAvatarAppearance(target);

                m_appearanceCache.Add(target, x);

                return(x);
            }
            return(new AvatarAppearance());
        }
Esempio n. 8
0
        public bool SetAvatar(UUID principalID, AvatarData avatar)
        {
            object remoteValue = DoRemote(principalID, avatar);

            if (remoteValue != null || m_doRemoteOnly)
            {
                return(remoteValue == null ? false : (bool)remoteValue);
            }

            m_registry.RequestModuleInterface <ISimulationBase>().EventManager.FireGenericEventHandler("SetAppearance",
                                                                                                       new object[2]
            {
                principalID,
                avatar
            });
            RemoveOldBaked(principalID, avatar);
            avatar = FixWearables(principalID, avatar.ToAvatarAppearance(principalID));
            return(m_Database.Store(principalID, avatar));
        }
Esempio n. 9
0
        private AgentCircuitData MakeAgent(GridRegion region, UserAccount account,
                                           AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position, string viewer)
        {
            AgentCircuitData aCircuit = new AgentCircuitData();

            aCircuit.AgentID = account.PrincipalID;
            if (avatar != null)
            {
                aCircuit.Appearance = avatar.ToAvatarAppearance(account.PrincipalID);
            }
            else
            {
                aCircuit.Appearance = new AvatarAppearance(account.PrincipalID);
            }

            //aCircuit.BaseFolder = irrelevant
            aCircuit.CapsPath         = CapsUtil.GetRandomCapsObjectPath();
            aCircuit.child            = false; // the first login agent is root
            aCircuit.ChildrenCapSeeds = new Dictionary <ulong, string>();
            aCircuit.circuitcode      = circuit;
            aCircuit.firstname        = account.FirstName;
            //aCircuit.InventoryFolder = irrelevant
            aCircuit.lastname        = account.LastName;
            aCircuit.SecureSessionID = secureSession;
            aCircuit.SessionID       = session;
            aCircuit.startpos        = position;
            aCircuit.Viewer          = viewer;
            SetServiceURLs(aCircuit, account);

            return(aCircuit);

            //m_UserAgentService.LoginAgentToGrid(aCircuit, GatekeeperServiceConnector, region, out reason);
            //if (simConnector.CreateAgent(region, aCircuit, 0, out reason))
            //    return aCircuit;

            //return null;
        }
        public AvatarAppearance GetAppearance(UUID principalID)
        {
            AvatarData avatar = GetAvatar(principalID);

            return(avatar.ToAvatarAppearance());
        }
        // <summary>
        // </summary>
        // <param name=""></param>
        public bool SetAvatar(UUID userID, AvatarData avatar)
        {
            m_log.Debug("[SIMIAN AVATAR CONNECTOR]: SetAvatar called for " + userID);

            if (avatar.AvatarType == 1) // LLAvatar
            {
                AvatarAppearance appearance = avatar.ToAvatarAppearance();

                OSDMap map = new OSDMap();

                map["Height"] = OSD.FromReal(appearance.AvatarHeight);

                map["BodyItem"]        = appearance.Wearables[AvatarWearable.BODY][0].ItemID.ToString();
                map["EyesItem"]        = appearance.Wearables[AvatarWearable.EYES][0].ItemID.ToString();
                map["GlovesItem"]      = appearance.Wearables[AvatarWearable.GLOVES][0].ItemID.ToString();
                map["HairItem"]        = appearance.Wearables[AvatarWearable.HAIR][0].ItemID.ToString();
                map["JacketItem"]      = appearance.Wearables[AvatarWearable.JACKET][0].ItemID.ToString();
                map["PantsItem"]       = appearance.Wearables[AvatarWearable.PANTS][0].ItemID.ToString();
                map["ShirtItem"]       = appearance.Wearables[AvatarWearable.SHIRT][0].ItemID.ToString();
                map["ShoesItem"]       = appearance.Wearables[AvatarWearable.SHOES][0].ItemID.ToString();
                map["SkinItem"]        = appearance.Wearables[AvatarWearable.SKIN][0].ItemID.ToString();
                map["SkirtItem"]       = appearance.Wearables[AvatarWearable.SKIRT][0].ItemID.ToString();
                map["SocksItem"]       = appearance.Wearables[AvatarWearable.SOCKS][0].ItemID.ToString();
                map["UnderPantsItem"]  = appearance.Wearables[AvatarWearable.UNDERPANTS][0].ItemID.ToString();
                map["UnderShirtItem"]  = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].ItemID.ToString();
                map["BodyAsset"]       = appearance.Wearables[AvatarWearable.BODY][0].AssetID.ToString();
                map["EyesAsset"]       = appearance.Wearables[AvatarWearable.EYES][0].AssetID.ToString();
                map["GlovesAsset"]     = appearance.Wearables[AvatarWearable.GLOVES][0].AssetID.ToString();
                map["HairAsset"]       = appearance.Wearables[AvatarWearable.HAIR][0].AssetID.ToString();
                map["JacketAsset"]     = appearance.Wearables[AvatarWearable.JACKET][0].AssetID.ToString();
                map["PantsAsset"]      = appearance.Wearables[AvatarWearable.PANTS][0].AssetID.ToString();
                map["ShirtAsset"]      = appearance.Wearables[AvatarWearable.SHIRT][0].AssetID.ToString();
                map["ShoesAsset"]      = appearance.Wearables[AvatarWearable.SHOES][0].AssetID.ToString();
                map["SkinAsset"]       = appearance.Wearables[AvatarWearable.SKIN][0].AssetID.ToString();
                map["SkirtAsset"]      = appearance.Wearables[AvatarWearable.SKIRT][0].AssetID.ToString();
                map["SocksAsset"]      = appearance.Wearables[AvatarWearable.SOCKS][0].AssetID.ToString();
                map["UnderPantsAsset"] = appearance.Wearables[AvatarWearable.UNDERPANTS][0].AssetID.ToString();
                map["UnderShirtAsset"] = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].AssetID.ToString();

                OSDMap items = new OSDMap();
                foreach (KeyValuePair <string, string> kvp in avatar.Data)
                {
                    if (kvp.Key.StartsWith("_ap_"))
                    {
                        items.Add(kvp.Key, OSD.FromString(kvp.Value));
                    }
                }

                NameValueCollection requestArgs = new NameValueCollection
                {
                    { "RequestMethod", "AddUserData" },
                    { "UserID", userID.ToString() },
                    { "LLAppearance", OSDParser.SerializeJsonString(map) },
                    { "LLAttachments", OSDParser.SerializeJsonString(items) }
                };

                OSDMap response = SimianGrid.PostToService(m_serverUrl, requestArgs);
                bool   success  = response["Success"].AsBoolean();

                if (!success)
                {
                    m_log.Warn("[SIMIAN AVATAR CONNECTOR]: Failed saving appearance for " + userID + ": " + response["Message"].AsString());
                }

                return(success);
            }
            else
            {
                m_log.Error("[SIMIAN AVATAR CONNECTOR]: Can't save appearance for " + userID + ". Unhandled avatar type " + avatar.AvatarType);
                return(false);
            }
        }
        public AvatarAppearance GetAppearance(UUID userID)
        {
            AvatarData avatar = GetAvatar(userID);

            return(avatar.ToAvatarAppearance());
        }