public bool CheckName(string firstName, LastName lastName) { if (Initializing) { throw new InvalidOperationException("still initializing"); } if (_caps.CheckName == null) { throw new InvalidOperationException("access denied; only approved developers have access to the registration api"); } // Create the POST data LLSDMap query = new LLSDMap(); query.Add("username", LLSD.FromString(firstName)); query.Add("last_name_id", LLSD.FromInteger(lastName.ID)); //byte[] postData = LLSDParser.SerializeXmlBytes(query); CapsClient request = new CapsClient(_caps.CheckName); request.OnComplete += new CapsClient.CompleteCallback(CheckNameResponse); request.StartRequest(); // FIXME: return(false); }
public void Stop() { LLSDMap dictionary = new LLSDMap(server.PersistentExtensions.Count); for (int i = 0; i < server.PersistentExtensions.Count; i++) { IPersistable persistable = server.PersistentExtensions[i]; Logger.DebugLog("Storing persistant data for " + persistable.ToString()); dictionary.Add(persistable.ToString(), persistable.Serialize()); } try { XmlTextWriter writer = new XmlTextWriter(server.DataDir + "simiandata.xml", System.Text.Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartElement("llsd"); LLSDParser.SerializeXmlElement(writer, dictionary); writer.WriteEndElement(); writer.Close(); } catch (Exception ex) { Logger.Log("Failed to save persistance data: " + ex.Message, Helpers.LogLevel.Error); } }
public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, LLUUID folderID, ItemCreatedFromAssetCallback callback) { if (_Client.Network.CurrentSim == null || _Client.Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = _Client.Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { LLSDMap query = new LLSDMap(); query.Add("folder_id", LLSD.FromUUID(folderID)); query.Add("asset_type", LLSD.FromString(AssetTypeToString(assetType))); query.Add("inventory_type", LLSD.FromString(InventoryTypeToString(invType))); query.Add("name", LLSD.FromString(name)); query.Add("description", LLSD.FromString(description)); byte[] postData = StructuredData.LLSDParser.SerializeXmlBytes(query); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += new CapsClient.CompleteCallback(CreateItemFromAssetResponse); request.UserData = new KeyValuePair<ItemCreatedFromAssetCallback, byte[]>(callback, data); request.StartRequest(postData); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
/// <summary> /// Moderate a chat session /// </summary> /// <param name="sessionID">the <see cref="UUID"/> of the session to moderate, for group chats this will be the groups UUID</param> /// <param name="memberID">the <see cref="UUID"/> of the avatar to moderate</param> /// <param name="moderateText">true to moderate (silence user), false to allow avatar to speak</param> public void ModerateChatSessions(UUID sessionID, UUID memberID, bool moderateText) { if (Client.Network.CurrentSim == null || Client.Network.CurrentSim.Caps == null) throw new Exception("ChatSessionRequest capability is not currently available"); Uri url = Client.Network.CurrentSim.Caps.CapabilityURI("ChatSessionRequest"); if (url != null) { LLSDMap req = new LLSDMap(); req.Add("method", LLSD.FromString("mute update")); LLSDMap mute_info = new LLSDMap(); mute_info.Add("text", LLSD.FromBoolean(moderateText)); LLSDMap parameters = new LLSDMap(); parameters["agent_id"] = LLSD.FromUUID(memberID); parameters["mute_info"] = mute_info; req["params"] = parameters; req.Add("session-id", LLSD.FromUUID(sessionID)); byte[] postData = StructuredData.LLSDParser.SerializeXmlBytes(req); CapsClient request = new CapsClient(url); request.StartRequest(postData); } else { throw new Exception("ChatSessionRequest capability is not currently available"); } }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="notecardID"></param> /// <param name="callback"></param> public void RequestUploadNotecardAsset(byte[] data, UUID notecardID, NotecardUploadedAssetCallback callback) { if (_Network.CurrentSim == null || _Network.CurrentSim.Caps == null) throw new Exception("UpdateNotecardAgentInventory capability is not currently available"); Uri url = _Network.CurrentSim.Caps.CapabilityURI("UpdateNotecardAgentInventory"); if (url != null) { LLSDMap query = new LLSDMap(); query.Add("item_id", LLSD.FromUUID(notecardID)); byte[] postData = StructuredData.LLSDParser.SerializeXmlBytes(query); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += new CapsClient.CompleteCallback(UploadNotecardAssetResponse); request.UserData = new object[2] { new KeyValuePair<NotecardUploadedAssetCallback, byte[]>(callback, data), notecardID }; request.StartRequest(postData); } else { throw new Exception("UpdateNotecardAgentInventory capability is not currently available"); } }
public void RequestCreateItemFromAsset(byte[] data, string name, string description, AssetType assetType, InventoryType invType, UUID folderID, CapsClient.ProgressCallback progCallback, ItemCreatedFromAssetCallback callback) { if (_Network.CurrentSim == null || _Network.CurrentSim.Caps == null) throw new Exception("NewFileAgentInventory capability is not currently available"); Uri url = _Network.CurrentSim.Caps.CapabilityURI("NewFileAgentInventory"); if (url != null) { LLSDMap query = new LLSDMap(); query.Add("folder_id", LLSD.FromUUID(folderID)); query.Add("asset_type", LLSD.FromString(AssetTypeToString(assetType))); query.Add("inventory_type", LLSD.FromString(InventoryTypeToString(invType))); query.Add("name", LLSD.FromString(name)); query.Add("description", LLSD.FromString(description)); // Make the request CapsClient request = new CapsClient(url); request.OnComplete += new CapsClient.CompleteCallback(CreateItemFromAssetResponse); request.UserData = new object[] { progCallback, callback, data }; request.StartRequest(query); } else { throw new Exception("NewFileAgentInventory capability is not currently available"); } }
/// <summary> /// Returns the new user ID or throws an exception containing the error code /// The error codes can be found here: https://wiki.secondlife.com/wiki/RegAPIError /// </summary> /// <param name="user">New user account to create</param> /// <returns>The UUID of the new user account</returns> public UUID CreateUser(CreateUserParam user) { if (Initializing) { throw new InvalidOperationException("still initializing"); } if (_caps.CreateUser == null) { throw new InvalidOperationException("access denied; only approved developers have access to the registration api"); } // Create the POST data LLSDMap query = new LLSDMap(); query.Add("username", LLSD.FromString(user.FirstName)); query.Add("last_name_id", LLSD.FromInteger(user.LastName.ID)); query.Add("email", LLSD.FromString(user.Email)); query.Add("password", LLSD.FromString(user.Password)); query.Add("dob", LLSD.FromString(user.Birthdate.ToString("yyyy-MM-dd"))); if (user.LimitedToEstate != null) { query.Add("limited_to_estate", LLSD.FromInteger(user.LimitedToEstate.Value)); } if (!string.IsNullOrEmpty(user.StartRegionName)) { query.Add("start_region_name", LLSD.FromInteger(user.LimitedToEstate.Value)); } if (user.StartLocation != null) { query.Add("start_local_x", LLSD.FromReal(user.StartLocation.Value.X)); query.Add("start_local_y", LLSD.FromReal(user.StartLocation.Value.Y)); query.Add("start_local_z", LLSD.FromReal(user.StartLocation.Value.Z)); } if (user.StartLookAt != null) { query.Add("start_look_at_x", LLSD.FromReal(user.StartLookAt.Value.X)); query.Add("start_look_at_y", LLSD.FromReal(user.StartLookAt.Value.Y)); query.Add("start_look_at_z", LLSD.FromReal(user.StartLookAt.Value.Z)); } //byte[] postData = LLSDParser.SerializeXmlBytes(query); // Make the request CapsClient request = new CapsClient(_caps.CreateUser); request.OnComplete += new CapsClient.CompleteCallback(CreateUserResponse); request.StartRequest(); // FIXME: Block return(UUID.Zero); }
/// <summary> /// Returns the new user ID or throws an exception containing the error code /// The error codes can be found here: https://wiki.secondlife.com/wiki/RegAPIError /// </summary> /// <param name="user">New user account to create</param> /// <returns>The UUID of the new user account</returns> public LLUUID CreateUser(CreateUserParam user) { if (Initializing) throw new InvalidOperationException("still initializing"); if (_caps.CreateUser == null) throw new InvalidOperationException("access denied; only approved developers have access to the registration api"); // Create the POST data LLSDMap query = new LLSDMap(); query.Add("username", LLSD.FromString(user.FirstName)); query.Add("last_name_id", LLSD.FromInteger(user.LastName.ID)); query.Add("email", LLSD.FromString(user.Email)); query.Add("password", LLSD.FromString(user.Password)); query.Add("dob", LLSD.FromString(user.Birthdate.ToString("yyyy-MM-dd"))); if (user.LimitedToEstate != null) query.Add("limited_to_estate", LLSD.FromInteger(user.LimitedToEstate.Value)); if (!string.IsNullOrEmpty(user.StartRegionName)) query.Add("start_region_name", LLSD.FromInteger(user.LimitedToEstate.Value)); if (user.StartLocation != null) { query.Add("start_local_x", LLSD.FromReal(user.StartLocation.Value.X)); query.Add("start_local_y", LLSD.FromReal(user.StartLocation.Value.Y)); query.Add("start_local_z", LLSD.FromReal(user.StartLocation.Value.Z)); } if (user.StartLookAt != null) { query.Add("start_look_at_x", LLSD.FromReal(user.StartLookAt.Value.X)); query.Add("start_look_at_y", LLSD.FromReal(user.StartLookAt.Value.Y)); query.Add("start_look_at_z", LLSD.FromReal(user.StartLookAt.Value.Z)); } byte[] postData = LLSDParser.SerializeXmlBytes(query); // Make the request CapsClient request = new CapsClient(_caps.CreateUser); request.OnComplete += new CapsClient.CompleteCallback(CreateUserResponse); request.StartRequest(); // FIXME: Block return LLUUID.Zero; }
public bool CheckName(string firstName, LastName lastName) { if (Initializing) throw new InvalidOperationException("still initializing"); if (_caps.CheckName == null) throw new InvalidOperationException("access denied; only approved developers have access to the registration api"); // Create the POST data LLSDMap query = new LLSDMap(); query.Add("username", LLSD.FromString(firstName)); query.Add("last_name_id", LLSD.FromInteger(lastName.ID)); byte[] postData = LLSDParser.SerializeXmlBytes(query); CapsClient request = new CapsClient(_caps.CheckName); request.OnComplete += new CapsClient.CompleteCallback(CheckNameResponse); request.StartRequest(); // FIXME: return false; }