Exemple #1
0
        /// <summary>
        ///  スクリプトを更新します<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="request">リクエストパラメータ</param>
        public IEnumerator UpdateScript(
            Request.UpdateScriptRequest request,
            UnityAction <AsyncResult <Result.UpdateScriptResult> > callback
            )
        {
            var task = new UpdateScriptTask(request, callback);

            return(Gs2WebSocketSession.Execute(task));
        }
Exemple #2
0
        /// <summary>
        ///  スクリプトを更新します<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="request">リクエストパラメータ</param>
        public IEnumerator UpdateScript(
            Request.UpdateScriptRequest request,
            UnityAction <AsyncResult <Result.UpdateScriptResult> > callback
            )
        {
            var task = new UpdateScriptTask(request, callback);

            if (_certificateHandler != null)
            {
                task.UnityWebRequest.certificateHandler = _certificateHandler;
            }
            return(Gs2RestSession.Execute(task));
        }
        public void SetupDefaultCapabilities(
            UUID regionSeedID,
            Dictionary <string, string> capConfig,
            Dictionary <string, string> serviceURLs)
        {
            /* grid may override the caps through Cap_ ServiceURLs */
            foreach (KeyValuePair <string, string> kvp in serviceURLs)
            {
                if (kvp.Key.StartsWith("Cap_"))
                {
                    string capName = kvp.Key.Substring(4);
                    if (capName != "ChatSessionRequest")
                    {
                        m_ServiceURLCapabilities.Add(capName, kvp.Value);
                    }
                }
            }

            ChatSessionRequestCapability = new ChatSessionRequest(Agent, this, RemoteIP, ChatSessionRequestMethodHandlers);
            try
            {
                /* The LSLCompiler is the only one that has this method */
                /* there has to be LSLSyntaxId which contains the hash of the file as UUID */
                var compiler = CompilerRegistry.ScriptCompilers["lsl"];
                var mi       = compiler.GetType().GetMethod("GetLSLSyntaxId", Type.EmptyTypes);
                if (compiler.GetType().GetMethod("WriteLSLSyntaxFile", new Type[] { typeof(Stream) }) != null && mi != null)
                {
                    AddDefCapability("LSLSyntax", regionSeedID, Cap_LSLSyntax, capConfig);
                    m_ServiceURLCapabilities["LSLSyntaxId"] = (string)mi.Invoke(compiler, new object[0]);
                }
            }
            catch
            {
                /* no action needed here */
            }

            AddDefCapabilityFactory("SimulatorFeatures", regionSeedID, (agent) => new SimulatorFeatures(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapability("UpdateAgentLanguage", regionSeedID, Cap_UpdateAgentLanguage, capConfig);
            AddDefCapability("UntrustedSimulatorMessage", regionSeedID, Cap_UntrustedSimulatorMessage, capConfig);
            AddDefCapability("EnvironmentSettings", regionSeedID, Cap_EnvironmentSettings, capConfig);
            AddDefCapability("RenderMaterials", regionSeedID, Cap_RenderMaterials, capConfig);
            AddDefCapability("SimConsoleAsync", regionSeedID, Cap_SimConsoleAsyncCap, capConfig);
            /* AddDefCapability("ViewerAsset", regionSeedID, Cap_GetAsset, capConfig); TODO: rename needed */
            AddDefCapability("GetTexture", regionSeedID, Cap_GetAsset, capConfig);
            AddDefCapability("GetMesh", regionSeedID, Cap_GetAsset, capConfig);
            AddDefCapability("GetMesh2", regionSeedID, Cap_GetAsset, capConfig);
            AddDefCapability("GetDisplayNames", regionSeedID, Cap_GetDisplayNames, capConfig);
            AddDefCapability("MeshUploadFlag", regionSeedID, Cap_MeshUploadFlag, capConfig);
            AddDefCapability("GetPhysicsObjectData", regionSeedID, Cap_GetObjectsPhysicsData, capConfig);
            AddDefCapability("ChatSessionRequest", regionSeedID, ChatSessionRequestCapability.HttpRequestHandler, capConfig);
            string localHostName = string.Format("{0}://{1}:{2}", m_CapsRedirector.Scheme, m_CapsRedirector.ExternalHostName, m_CapsRedirector.Port);

            AddDefCapabilityFactory("DispatchRegionInfo", regionSeedID, (agent) => new DispatchRegionInfo(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("CopyInventoryFromNotecard", regionSeedID, (agent) => new CopyInventoryFromNotecard(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ParcelPropertiesUpdate", regionSeedID, (agent) => new ParcelPropertiesUpdate(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("AgentPreferences", regionSeedID, (agent) => new AgentPreferences(agent, RemoteIP), capConfig);
            AddDefCapabilityFactory("ObjectAdd", regionSeedID, (agent) => new ObjectAdd(Server.Scene, agent.Owner, RemoteIP), capConfig);
            AddDefCapabilityFactory("UploadBakedTexture", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UploadBakedTexture(
                    agent.Owner,
                    Server.Scene.AssetService,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("NewFileAgentInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new NewFileAgentInventory(
                    agent,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("NewFileAgentInventoryVariablePrice", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new NewFileAgentInventoryVariablePrice(
                    agent,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateGestureAgentInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateGestureAgentInventory(
                    agent,
                    agent.InventoryService,
                    agent.AssetService,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateNotecardAgentInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateNotecardAgentInventory(
                    agent,
                    agent.InventoryService,
                    agent.AssetService,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateSettingsAgentInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateSettingsAgentInventory(
                    agent,
                    agent.InventoryService,
                    agent.AssetService,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateScriptAgent", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateScriptAgent(
                    agent,
                    agent.InventoryService,
                    agent.AssetService,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateScriptTask", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateScriptTask(
                    agent,
                    Server.Scene,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateGestureTaskInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateGestureTaskInventory(
                    agent,
                    Server.Scene,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateNotecardTaskInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateNotecardTaskInventory(
                    agent,
                    Server.Scene,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("UpdateSettingsTaskInventory", regionSeedID, (agent) =>
            {
                UploadAssetAbstractCapability capability = new UpdateSettingsTaskInventory(
                    agent,
                    Server.Scene,
                    localHostName,
                    RemoteIP);
                m_UploadCapabilities.Add(capability);
                return(capability);
            }, capConfig);
            AddDefCapabilityFactory("ParcelNavigateMedia", regionSeedID, (agent) => new ParcelNavigateMedia(agent.Owner, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ObjectMedia", regionSeedID, (agent) => new ObjectMedia(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ObjectMediaNavigate", regionSeedID, (agent) => new ObjectMediaNavigate(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("UpdateAvatarAppearance", regionSeedID, (agent) => new UpdateAvatarAppearance(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("LandResources", regionSeedID, (agent) => new LandResources(agent, Server.Scene, localHostName, RemoteIP), capConfig);
            AddDefCapabilityFactory("AttachmentResources", regionSeedID, (agent) => new AttachmentResources(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ResourceCostSelected", regionSeedID, (agent) => new ResourceCostSelected(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ViewerStats", regionSeedID, (agent) => ViewerStats     = new ViewerStats(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("ViewerMetrics", regionSeedID, (agent) => ViewerMetrics = new ViewerMetrics(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("GetObjectCost", regionSeedID, (agent) => new GetObjectCost(agent, Server.Scene, RemoteIP), capConfig);
            AddDefCapabilityFactory("EstateAccess", regionSeedID, (agent) => new EstateAccess(agent, Server.Scene, RemoteIP), capConfig);
        }