public bool AddPick (ProfilePickInfo pick) { if (GetUserProfile (pick.CreatorUUID) == null) return false; //It might be updating, delete the old GD.Delete ("userpicks", new string[1] { "PickUUID" }, new object[1] { pick.PickUUID }); List<object> values = new List<object> (); values.Add (pick.Name); values.Add (pick.SimName); values.Add (pick.CreatorUUID); values.Add (pick.PickUUID); values.Add (OSDParser.SerializeJsonString (pick.ToOSD ())); return GD.Insert ("userpicks", values.ToArray ()); }
public void PickInfoUpdate(IClientAPI remoteClient, UUID pickID, UUID creatorID, bool topPick, string name, string desc, UUID snapshotID, int sortOrder, bool enabled, Vector3d globalPos) { IUserProfileInfo info = ProfileFrontend.GetUserProfile(remoteClient.AgentId); if (info == null) return; ScenePresence p = GetRegionUserIsIn(remoteClient.AgentId).GetScenePresence(remoteClient.AgentId); UUID parceluuid = p.currentParcelUUID; string user = "******"; string OrigionalName = "(unknown)"; Vector3 pos_global = new Vector3(globalPos); IParcelManagementModule parcelManagement = GetRegionUserIsIn(remoteClient.AgentId).RequestModuleInterface<IParcelManagementModule>(); if (parcelManagement != null) { ILandObject targetlandObj = parcelManagement.GetLandObject(pos_global.X / Constants.RegionSize, pos_global.Y / Constants.RegionSize); if (targetlandObj != null) { UserAccount parcelOwner = GetRegionUserIsIn(remoteClient.AgentId).UserAccountService.GetUserAccount(UUID.Zero, targetlandObj.LandData.OwnerID); if (parcelOwner != null) user = parcelOwner.Name; parceluuid = targetlandObj.LandData.InfoUUID; OrigionalName = targetlandObj.LandData.Name; } } if (!info.Picks.ContainsKey(pickID.ToString())) { ProfilePickInfo values = new ProfilePickInfo(); values.PickUUID = pickID; values.CreatorUUID = creatorID; values.TopPick = topPick ? 1 : 0; values.ParcelUUID = parceluuid; values.Name = name; values.Description = desc; values.SnapshotUUID = snapshotID; values.User = user; values.OriginalName = OrigionalName; values.SimName = remoteClient.Scene.RegionInfo.RegionName; values.GlobalPos = pos_global; values.SortOrder = sortOrder; values.Enabled = enabled ? 1 : 0; info.Picks.Add(pickID.ToString(), values.ToOSD()); } else { ProfilePickInfo oldpick = new ProfilePickInfo(); oldpick.FromOSD((OSDMap)info.Picks[pickID.ToString()]); //Security check if (oldpick.CreatorUUID != remoteClient.AgentId) return; oldpick.TopPick = topPick ? 1 : 0; oldpick.ParcelUUID = parceluuid; oldpick.Name = name; oldpick.Description = desc; oldpick.SnapshotUUID = snapshotID; oldpick.User = user; oldpick.OriginalName = OrigionalName; oldpick.SimName = remoteClient.Scene.RegionInfo.RegionName; oldpick.GlobalPos = pos_global; oldpick.SortOrder = sortOrder; oldpick.Enabled = enabled ? 1 : 0; info.Picks.Remove(pickID.ToString()); info.Picks.Add(pickID.ToString(), oldpick.ToOSD()); } ProfileFrontend.UpdateUserProfile(info); }
public bool AddPick(ProfilePickInfo pick) { object remoteValue = DoRemote(pick); if (remoteValue != null || m_doRemoteOnly) return remoteValue != null && (bool)remoteValue; if (GetUserProfile(pick.CreatorUUID) == null) return false; //It might be updating, delete the old QueryFilter filter = new QueryFilter(); filter.andFilters["PickUUID"] = pick.PickUUID; GD.Delete("userpicks", filter); List<object> values = new List<object> { pick.Name.MySqlEscape(), pick.SimName.MySqlEscape(), pick.CreatorUUID, pick.PickUUID, OSDParser.SerializeJsonString(pick.ToOSD()) }; return GD.Insert("userpicks", values.ToArray()); }
public bool AddPick (ProfilePickInfo pick) { try { List<string> serverURIs = m_registry.RequestModuleInterface<IConfigurationService> ().FindValueOf (pick.CreatorUUID.ToString (), "RemoteServerURI"); foreach (string url in serverURIs) { OSDMap map = new OSDMap (); map["Method"] = "addpick"; map["Pick"] = pick.ToOSD (); WebUtils.PostToService (url + "osd", map, false, false); } } catch (Exception e) { m_log.DebugFormat ("[AuroraRemoteProfileConnector]: Exception when contacting server: {0}", e.ToString ()); } return true; }
public void PickInfoUpdate(IClientAPI remoteClient, UUID pickID, UUID creatorID, bool topPick, string name, string desc, UUID snapshotID, int sortOrder, bool enabled, Vector3d globalPos) { IUserProfileInfo info = ProfileFrontend.GetUserProfile(remoteClient.AgentId); if (info == null) return; ScenePresence p = GetRegionUserIsIn(remoteClient.AgentId).GetScenePresence(remoteClient.AgentId); UUID parceluuid = p.currentParcelUUID; string user = "******"; string OrigionalName = "(unknown)"; Vector3 pos_global = new Vector3(globalPos); ILandObject targetlandObj = GetRegionUserIsIn(remoteClient.AgentId).LandChannel.GetLandObject(p.AbsolutePosition.X, p.AbsolutePosition.Y); if (targetlandObj != null) { UserAccount parcelOwner = GetRegionUserIsIn(remoteClient.AgentId).UserAccountService.GetUserAccount(UUID.Zero, targetlandObj.LandData.OwnerID); if (parcelOwner != null) user = parcelOwner.Name; parceluuid = targetlandObj.LandData.InfoUUID; OrigionalName = targetlandObj.LandData.Name; } OSDMap picks = Util.DictionaryToOSD(info.Picks); if (!picks.ContainsKey(pickID.ToString())) { ProfilePickInfo values = new ProfilePickInfo(); values.PickUUID = pickID; values.CreatorUUID = creatorID; values.TopPick = topPick ? 1 : 0; values.ParcelUUID = parceluuid; values.Name = name; values.Description = desc; values.SnapshotUUID = snapshotID; values.User = user; values.OriginalName = OrigionalName; values.SimName = remoteClient.Scene.RegionInfo.RegionName; values.GlobalPos = pos_global; values.SortOrder = sortOrder; values.Enabled = enabled ? 1 : 0; picks.Add(pickID.ToString(), values.ToOSD()); } else { ProfilePickInfo oldpick = new ProfilePickInfo(); oldpick.FromOSD((OSDMap)picks[pickID.ToString()]); //Security check if (oldpick.CreatorUUID != remoteClient.AgentId) return; oldpick.TopPick = topPick ? 1 : 0; oldpick.ParcelUUID = parceluuid; oldpick.Name = name; oldpick.Description = desc; oldpick.SnapshotUUID = snapshotID; oldpick.User = user; oldpick.OriginalName = OrigionalName; oldpick.SimName = remoteClient.Scene.RegionInfo.RegionName; oldpick.GlobalPos = pos_global; oldpick.SortOrder = sortOrder; oldpick.Enabled = enabled ? 1 : 0; picks.Remove(pickID.ToString()); picks.Add(pickID.ToString(), Util.DictionaryToOSD(oldpick.ToKeyValuePairs())); } info.Picks = Util.OSDToDictionary(picks); ProfileFrontend.UpdateUserProfile(info); }