29 using System.Collections;
30 using System.Collections.Generic;
32 using System.Reflection;
34 using OpenSim.Framework;
35 using OpenSim.Services.Interfaces;
41 using OpenMetaverse.StructuredData;
65 "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist.",
68 "Error connecting to the desired location. Try connecting to another region.",
71 "The inventory service is not responding. Please notify your login region operator.",
74 "The region you are attempting to log into is not responding. Please select another region and try again.",
77 "Logins are currently restricted. Please try again later.",
80 "Your account has not yet been verified. Please check " +
81 "your email and click the provided link.",
84 "You appear to be already logged in. " +
85 "If this is not the case please wait for your session to timeout. " +
86 "If this takes longer than a few minutes please contact the grid owner. " +
87 "Please wait 5 minutes if you are going to connect to a region nearby to the region you were at previously.",
89 InternalError =
new LLFailedLoginResponse(
"Internal Error",
"Error generating Login Response",
"false");
101 Hashtable loginError =
new Hashtable();
102 loginError[
"reason"] = m_key;
103 loginError[
"message"] = m_value;
104 loginError[
"login"] = m_login;
112 map[
"reason"] = OSD.FromString(m_key);
113 map[
"message"] = OSD.FromString(m_value);
114 map[
"login"] = OSD.FromString(m_login);
125 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
126 private static Hashtable globalTexturesHash;
128 private static string sunTexture =
"cce0f112-878f-4586-a2e2-a8f104bba271";
129 private static string cloudTexture =
"dc4b9f0b-d008-45c6-96a4-01dd947ac621";
130 private static string moonTexture =
"ec4b9f0b-d008-45c6-96a4-01dd947ac621";
132 private Hashtable loginFlagsHash;
133 private Hashtable uiConfigHash;
135 private ArrayList loginFlags;
136 private ArrayList globalTextures;
137 private ArrayList eventCategories;
138 private ArrayList uiConfig;
139 private ArrayList classifiedCategories;
140 private ArrayList inventoryRoot;
141 private ArrayList initialOutfit;
142 private ArrayList agentInventory;
143 private ArrayList inventoryLibraryOwner;
144 private ArrayList inventoryLibRoot;
145 private ArrayList inventoryLibrary;
146 private ArrayList activeGestures;
150 private UUID agentID;
151 private UUID sessionID;
152 private UUID secureSessionID;
157 private string stipendSinceLogin;
158 private string gendered;
159 private string everLoggedIn;
160 private string login;
161 private uint simPort;
162 private uint simHttpPort;
163 private string simAddress;
164 private string agentAccess;
165 private string agentAccessMax;
166 private Int32 circuitCode;
167 private uint regionX;
168 private uint regionY;
171 private string firstname;
172 private string lastname;
175 private string mapTileURL;
178 private string profileURL;
181 private string openIDURL;
183 private string searchURL;
186 private string errorReason;
187 private string errorMessage;
189 private string welcomeMessage;
190 private string startLocation;
191 private string allowFirstLife;
193 private string seedCapability;
194 private string lookAt;
198 private string currency;
199 private string classifiedFee;
200 private int maxAgentGroups;
206 globalTexturesHash =
new Hashtable();
207 globalTexturesHash[
"sun_texture_id"] = sunTexture;
208 globalTexturesHash[
"cloud_texture_id"] = cloudTexture;
209 globalTexturesHash[
"moon_texture_id"] = moonTexture;
214 loginFlags =
new ArrayList();
215 globalTextures =
new ArrayList();
216 eventCategories =
new ArrayList();
217 uiConfig =
new ArrayList();
218 classifiedCategories =
new ArrayList();
220 uiConfigHash =
new Hashtable();
224 inventoryRoot =
new ArrayList();
225 initialOutfit =
new ArrayList();
226 agentInventory =
new ArrayList();
227 inventoryLibrary =
new ArrayList();
228 inventoryLibraryOwner =
new ArrayList();
229 activeGestures =
new ArrayList();
236 string where,
string startlocation, Vector3 position, Vector3 lookAt, List<InventoryItemBase> gestures,
string message,
238 GridRegion home, IPEndPoint clientIP,
string mapTileURL,
string profileURL,
string openIDURL,
string searchURL,
string currency,
239 string DSTZone,
string destinationsURL,
string avatarsURL, UUID realID,
string classifiedFee,
int maxAgentGroups)
242 FillOutInventoryData(invSkel, libService);
244 FillOutActiveGestures(gestures);
254 BuddList = ConvertFriendListItem(friendsList);
255 StartLocation = where;
256 MapTileURL = mapTileURL;
257 ProfileURL = profileURL;
258 OpenIDURL = openIDURL;
259 DestinationsURL = destinationsURL;
260 AvatarsURL = avatarsURL;
262 SearchURL = searchURL;
264 ClassifiedFee = classifiedFee;
265 MaxAgentGroups = maxAgentGroups;
267 FillOutHomeData(pinfo, home);
268 LookAt = String.Format(
"[r{0},r{1},r{2}]", lookAt.X, lookAt.Y, lookAt.Z);
270 FillOutRegionData(destination);
271 m_log.DebugFormat(
"[LOGIN RESPONSE] LLLoginResponse create. sizeX={0}, sizeY={1}", RegionSizeX, RegionSizeY);
273 FillOutSeedCap(aCircuit, destination, clientIP);
281 DST = TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.Now) ?
"Y" :
"N";
284 TimeZoneInfo dstTimeZone = null;
285 string[] tzList = DSTZone.Split(
';');
287 foreach (
string tzName
in tzList)
291 dstTimeZone = TimeZoneInfo.FindSystemTimeZoneById(tzName);
300 if (dstTimeZone == null)
303 "[LLOGIN RESPONSE]: No valid timezone found for DST in {0}, falling back to system time.", tzList);
304 DST = TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.Now) ?
"Y" :
"N";
308 DST = dstTimeZone.IsDaylightSavingTime(DateTime.Now) ?
"Y" :
"N";
315 private void FillOutInventoryData(List<InventoryFolderBase> invSkel,
ILibraryService libService)
317 InventoryData inventData = null;
321 inventData = GetInventorySkeleton(invSkel);
326 "[LLLOGIN SERVICE]: Error processing inventory skeleton of agent {0} - {1}",
332 if (inventData != null)
334 ArrayList AgentInventoryArray = inventData.InventoryArray;
336 Hashtable InventoryRootHash =
new Hashtable();
337 InventoryRootHash[
"folder_id"] = inventData.RootFolderID.ToString();
338 InventoryRoot =
new ArrayList();
339 InventoryRoot.Add(InventoryRootHash);
340 InventorySkeleton = AgentInventoryArray;
346 Hashtable InventoryLibRootHash =
new Hashtable();
347 InventoryLibRootHash[
"folder_id"] =
"00000112-000f-0000-0000-000100bba000";
348 InventoryLibRoot =
new ArrayList();
349 InventoryLibRoot.Add(InventoryLibRootHash);
352 InventoryLibrary = GetInventoryLibrary(libService);
356 private void FillOutActiveGestures(List<InventoryItemBase> gestures)
358 ArrayList list =
new ArrayList();
359 if (gestures != null)
363 Hashtable item =
new Hashtable();
364 item[
"item_id"] = gesture.ID.ToString();
365 item[
"asset_id"] = gesture.AssetID.ToString();
369 ActiveGestures = list;
374 int x = (int)Util.RegionToWorldLoc(1000);
375 int y = (int)Util.RegionToWorldLoc(1000);
382 Home = string.Format(
383 "{{'region_handle':[r{0},r{1}], 'position':[r{2},r{3},r{4}], 'look_at':[r{5},r{6},r{7}]}}",
386 pinfo.HomePosition.X, pinfo.HomePosition.Y, pinfo.HomePosition.Z,
387 pinfo.HomeLookAt.X, pinfo.HomeLookAt.Y, pinfo.HomeLookAt.Z);
391 private void FillOutRegionData(
GridRegion destination)
393 IPEndPoint endPoint = destination.ExternalEndPoint;
394 if (endPoint == null)
return;
395 SimAddress = endPoint.Address.ToString();
396 SimPort = (uint)endPoint.Port;
397 RegionX = (uint)destination.RegionLocX;
405 SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath);
408 private void SetDefaultValues()
410 TimeZoneInfo gridTimeZone;
430 gridTimeZone = TimeZoneInfo.Local;
433 DST = gridTimeZone.IsDaylightSavingTime(DateTime.Now) ?
"Y" :
"N";
435 StipendSinceLogin =
"N";
442 agentAccessMax =
"A";
443 startLocation =
"last";
444 allowFirstLife =
"Y";
446 ErrorMessage =
"You have entered an invalid name/password combination. Check Caps/lock.";
448 welcomeMessage =
"Welcome to OpenSim!";
449 seedCapability = String.Empty;
450 home =
"{'region_handle':["
451 +
"r" + Util.RegionToWorldLoc(1000).ToString()
453 +
"r" + Util.RegionToWorldLoc(1000).ToString()
455 +
"r" + userProfile.homepos.X.ToString()
457 +
"r" + userProfile.homepos.Y.ToString()
459 +
"r" + userProfile.homepos.Z.ToString()
461 +
"r" + userProfile.homelookat.X.ToString()
463 +
"r" + userProfile.homelookat.Y.ToString()
465 +
"r" + userProfile.homelookat.Z.ToString()
467 lookAt =
"[r0.99949799999999999756,r0.03166859999999999814,r0]";
468 RegionX = (uint) 255232;
469 RegionY = (uint) 254976;
472 AddClassifiedCategory((Int32) 1,
"Shopping");
473 AddClassifiedCategory((Int32) 2,
"Land Rental");
474 AddClassifiedCategory((Int32) 3,
"Property Rental");
475 AddClassifiedCategory((Int32) 4,
"Special Attraction");
476 AddClassifiedCategory((Int32) 5,
"New Products");
477 AddClassifiedCategory((Int32) 6,
"Employment");
478 AddClassifiedCategory((Int32) 7,
"Wanted");
479 AddClassifiedCategory((Int32) 8,
"Service");
480 AddClassifiedCategory((Int32) 9,
"Personal");
482 SessionID = UUID.Random();
483 SecureSessionID = UUID.Random();
484 AgentID = UUID.Random();
487 Hashtable InitialOutfitHash =
new Hashtable();
488 InitialOutfitHash[
"folder_name"] =
"Nightclub Female";
489 InitialOutfitHash[
"gender"] =
"female";
490 initialOutfit.Add(InitialOutfitHash);
491 mapTileURL = String.Empty;
492 profileURL = String.Empty;
493 openIDURL = String.Empty;
494 searchURL = String.Empty;
496 currency = String.Empty;
506 Hashtable responseData =
new Hashtable();
508 loginFlagsHash =
new Hashtable();
509 loginFlagsHash[
"daylight_savings"] = DST;
510 loginFlagsHash[
"stipend_since_login"] = StipendSinceLogin;
511 loginFlagsHash[
"gendered"] = Gendered;
512 loginFlagsHash[
"ever_logged_in"] = EverLoggedIn;
513 loginFlags.Add(loginFlagsHash);
515 responseData[
"first_name"] = Firstname;
516 responseData[
"last_name"] = Lastname;
517 responseData[
"agent_access"] = agentAccess;
518 responseData[
"agent_access_max"] = agentAccessMax;
520 globalTextures.Add(globalTexturesHash);
523 AddToUIConfig(
"allow_first_life", allowFirstLife);
524 uiConfig.Add(uiConfigHash);
526 responseData[
"sim_port"] = (Int32) SimPort;
527 responseData[
"sim_ip"] = SimAddress;
528 responseData[
"http_port"] = (Int32)SimHttpPort;
530 responseData[
"agent_id"] = AgentID.ToString();
531 responseData[
"real_id"] = RealID.ToString();
532 responseData[
"session_id"] = SessionID.ToString();
533 responseData[
"secure_session_id"] = SecureSessionID.ToString();
534 responseData[
"circuit_code"] = CircuitCode;
535 responseData[
"seconds_since_epoch"] = (Int32) (DateTime.UtcNow -
new DateTime(1970, 1, 1)).TotalSeconds;
536 responseData[
"login-flags"] = loginFlags;
537 responseData[
"global-textures"] = globalTextures;
538 responseData[
"seed_capability"] = seedCapability;
540 responseData[
"event_categories"] = eventCategories;
541 responseData[
"event_notifications"] =
new ArrayList();
542 responseData[
"classified_categories"] = classifiedCategories;
543 responseData[
"ui-config"] = uiConfig;
545 if (agentInventory != null)
547 responseData[
"inventory-skeleton"] = agentInventory;
548 responseData[
"inventory-root"] = inventoryRoot;
550 responseData[
"inventory-skel-lib"] = inventoryLibrary;
551 responseData[
"inventory-lib-root"] = inventoryLibRoot;
552 responseData[
"gestures"] = activeGestures;
553 responseData[
"inventory-lib-owner"] = inventoryLibraryOwner;
554 responseData[
"initial-outfit"] = initialOutfit;
555 responseData[
"start_location"] = startLocation;
556 responseData[
"seed_capability"] = seedCapability;
557 responseData[
"home"] = home;
558 responseData[
"look_at"] = lookAt;
559 responseData[
"max-agent-groups"] = MaxAgentGroups;
560 responseData[
"message"] = welcomeMessage;
561 responseData[
"region_x"] = (Int32)(RegionX);
562 responseData[
"region_y"] = (Int32)(RegionY);
563 responseData[
"region_size_x"] = (Int32)RegionSizeX;
564 responseData[
"region_size_y"] = (Int32)RegionSizeY;
565 m_log.DebugFormat(
"[LOGIN RESPONSE] returning sizeX={0}, sizeY={1}", RegionSizeX, RegionSizeY);
567 if (searchURL != String.Empty)
568 responseData[
"search"] = searchURL;
570 if (mapTileURL != String.Empty)
571 responseData[
"map-server-url"] = mapTileURL;
573 if (profileURL != String.Empty)
574 responseData[
"profile-server-url"] = profileURL;
576 if (DestinationsURL != String.Empty)
577 responseData[
"destination_guide_url"] = DestinationsURL;
579 if (AvatarsURL != String.Empty)
580 responseData[
"avatar_picker_url"] = AvatarsURL;
583 if (openIDURL != String.Empty)
584 responseData[
"openid_url"] = openIDURL;
586 if (m_buddyList != null)
588 responseData[
"buddy-list"] = m_buddyList.ToArray();
591 if (currency != String.Empty)
594 responseData[
"currency"] = currency;
597 if (ClassifiedFee != String.Empty)
598 responseData[
"classified_fee"] = ClassifiedFee;
600 responseData[
"login"] =
"true";
606 m_log.Warn(
"[CLIENT]: LoginResponse: Error creating Hashtable Response: " + e.Message);
608 return LLFailedLoginResponse.InternalError.ToHashtable();
618 map[
"first_name"] = OSD.FromString(Firstname);
619 map[
"last_name"] = OSD.FromString(Lastname);
620 map[
"agent_access"] = OSD.FromString(agentAccess);
621 map[
"agent_access_max"] = OSD.FromString(agentAccessMax);
623 map[
"sim_port"] = OSD.FromInteger(SimPort);
624 map[
"sim_ip"] = OSD.FromString(SimAddress);
626 map[
"agent_id"] = OSD.FromUUID(AgentID);
627 map[
"real_id"] = OSD.FromUUID(RealID);
628 map[
"session_id"] = OSD.FromUUID(SessionID);
629 map[
"secure_session_id"] = OSD.FromUUID(SecureSessionID);
630 map[
"circuit_code"] = OSD.FromInteger(CircuitCode);
631 map[
"seconds_since_epoch"] = OSD.FromInteger((int)(DateTime.UtcNow -
new DateTime(1970, 1, 1)).TotalSeconds);
636 loginFlagsLLSD[
"daylight_savings"] = OSD.FromString(DST);
637 loginFlagsLLSD[
"stipend_since_login"] = OSD.FromString(StipendSinceLogin);
638 loginFlagsLLSD[
"gendered"] = OSD.FromString(Gendered);
639 loginFlagsLLSD[
"ever_logged_in"] = OSD.FromString(EverLoggedIn);
640 map[
"login-flags"] = WrapOSDMap(loginFlagsLLSD);
642 #endregion Login Flags
644 #region Global Textures
647 globalTexturesLLSD[
"sun_texture_id"] = OSD.FromString(SunTexture);
648 globalTexturesLLSD[
"cloud_texture_id"] = OSD.FromString(CloudTexture);
649 globalTexturesLLSD[
"moon_texture_id"] = OSD.FromString(MoonTexture);
651 map[
"global-textures"] = WrapOSDMap(globalTexturesLLSD);
653 #endregion Global Textures
655 map[
"seed_capability"] = OSD.FromString(seedCapability);
657 map[
"event_categories"] = ArrayListToOSDArray(eventCategories);
659 map[
"classified_categories"] = ArrayListToOSDArray(classifiedCategories);
664 uiConfigLLSD[
"allow_first_life"] = OSD.FromString(allowFirstLife);
665 map[
"ui-config"] = WrapOSDMap(uiConfigLLSD);
671 map[
"inventory-skeleton"] = ArrayListToOSDArray(agentInventory);
673 map[
"inventory-skel-lib"] = ArrayListToOSDArray(inventoryLibrary);
674 map[
"inventory-root"] = ArrayListToOSDArray(inventoryRoot); ;
675 map[
"inventory-lib-root"] = ArrayListToOSDArray(inventoryLibRoot);
676 map[
"inventory-lib-owner"] = ArrayListToOSDArray(inventoryLibraryOwner);
680 map[
"gestures"] = ArrayListToOSDArray(activeGestures);
682 map[
"initial-outfit"] = ArrayListToOSDArray(initialOutfit);
683 map[
"start_location"] = OSD.FromString(startLocation);
685 map[
"seed_capability"] = OSD.FromString(seedCapability);
686 map[
"home"] = OSD.FromString(home);
687 map[
"look_at"] = OSD.FromString(lookAt);
688 map[
"max-agent-groups"] = OSD.FromInteger(MaxAgentGroups);
689 map[
"message"] = OSD.FromString(welcomeMessage);
690 map[
"region_x"] = OSD.FromInteger(RegionX);
691 map[
"region_y"] = OSD.FromInteger(RegionY);
693 if (mapTileURL != String.Empty)
694 map[
"map-server-url"] = OSD.FromString(mapTileURL);
696 if (profileURL != String.Empty)
697 map[
"profile-server-url"] = OSD.FromString(profileURL);
699 if (openIDURL != String.Empty)
700 map[
"openid_url"] = OSD.FromString(openIDURL);
702 if (searchURL != String.Empty)
703 map[
"search"] = OSD.FromString(searchURL);
705 if (ClassifiedFee != String.Empty)
706 map[
"classified_fee"] = OSD.FromString(ClassifiedFee);
708 if (m_buddyList != null)
710 map[
"buddy-list"] = ArrayListToOSDArray(m_buddyList.ToArray());
713 map[
"login"] = OSD.FromString(
"true");
719 m_log.Warn(
"[CLIENT]: LoginResponse: Error creating LLSD Response: " + e.Message);
721 return LLFailedLoginResponse.InternalError.ToOSDMap();
728 foreach (Hashtable ht
in arrlst)
731 foreach (DictionaryEntry deHt
in ht)
733 mp.Add((string)deHt.Key, OSDString.FromObject(deHt.Value));
755 uiConfigHash[itemName] = item;
760 Hashtable hash =
new Hashtable();
761 hash[
"category_name"] = categoryName;
762 hash[
"category_id"] = ID;
763 classifiedCategories.Add(hash);
777 UUID friendID = UUID.Zero;
778 if (UUID.TryParse(finfo.
Friend, out friendID))
779 buddyitem.BuddyID = finfo.
Friend;
783 if (Util.ParseUniversalUserIdentifier(finfo.
Friend, out friendID, out tmp, out tmp, out tmp, out tmp))
784 buddyitem.BuddyID = friendID.ToString();
789 buddyitem.BuddyRightsHave = (int)finfo.
TheirFlags;
790 buddyitem.BuddyRightsGiven = (
int)finfo.MyFlags;
791 buddylistreturn.AddNewBuddy(buddyitem);
793 return buddylistreturn;
796 private InventoryData GetInventorySkeleton(List<InventoryFolderBase> folders)
798 UUID rootID = UUID.Zero;
799 ArrayList AgentInventoryArray =
new ArrayList();
805 rootID = InvFolder.ID;
807 TempHash =
new Hashtable();
808 TempHash[
"name"] = InvFolder.Name;
809 TempHash[
"parent_id"] = InvFolder.ParentID.ToString();
810 TempHash[
"version"] = (Int32)InvFolder.
Version;
811 TempHash[
"type_default"] = (Int32)InvFolder.Type;
812 TempHash[
"folder_id"] = InvFolder.ID.ToString();
813 AgentInventoryArray.Add(TempHash);
816 return new InventoryData(AgentInventoryArray, rootID);
826 Dictionary<UUID, InventoryFolderImpl> rootFolders = library.GetAllFolders();
829 ArrayList folderHashes =
new ArrayList();
833 Hashtable TempHash =
new Hashtable();
834 TempHash[
"name"] = folder.Name;
835 TempHash[
"parent_id"] = folder.ParentID.ToString();
836 TempHash[
"version"] = (Int32)folder.
Version;
837 TempHash[
"type_default"] = (Int32)folder.Type;
838 TempHash[
"folder_id"] = folder.ID.ToString();
839 folderHashes.Add(TempHash);
852 Hashtable TempHash =
new Hashtable();
853 TempHash[
"agent_id"] =
"11111111-1111-0000-0000-000100bba000";
854 ArrayList inventoryLibOwner =
new ArrayList();
855 inventoryLibOwner.Add(TempHash);
856 return inventoryLibOwner;
861 public ArrayList InventoryArray = null;
862 public UUID RootFolderID = UUID.Zero;
866 InventoryArray = invList;
867 RootFolderID = rootID;
875 get {
return login; }
876 set { login = value; }
885 public string StipendSinceLogin
887 get {
return stipendSinceLogin; }
888 set { stipendSinceLogin = value; }
891 public string Gendered
893 get {
return gendered; }
894 set { gendered = value; }
897 public string EverLoggedIn
899 get {
return everLoggedIn; }
900 set { everLoggedIn = value; }
905 get {
return simPort; }
906 set { simPort = value; }
909 public uint SimHttpPort
911 get {
return simHttpPort; }
912 set { simHttpPort = value; }
915 public string SimAddress
917 get {
return simAddress; }
918 set { simAddress = value; }
923 get {
return agentID; }
924 set { agentID = value; }
927 public UUID SessionID
929 get {
return sessionID; }
930 set { sessionID = value; }
933 public UUID SecureSessionID
935 get {
return secureSessionID; }
936 set { secureSessionID = value; }
941 get {
return realID; }
942 set { realID = value; }
945 public Int32 CircuitCode
947 get {
return circuitCode; }
948 set { circuitCode = value; }
953 get {
return regionX; }
954 set { regionX = value; }
959 get {
return regionY; }
960 set { regionY = value; }
963 public int RegionSizeX {
get;
private set; }
964 public int RegionSizeY {
get;
private set; }
966 public string SunTexture
968 get {
return sunTexture; }
969 set { sunTexture = value; }
972 public string CloudTexture
974 get {
return cloudTexture; }
975 set { cloudTexture = value; }
978 public string MoonTexture
980 get {
return moonTexture; }
981 set { moonTexture = value; }
984 public string Firstname
986 get {
return firstname; }
987 set { firstname = value; }
990 public string Lastname
992 get {
return lastname; }
993 set { lastname = value; }
996 public string AgentAccess
998 get {
return agentAccess; }
999 set { agentAccess = value; }
1002 public string AgentAccessMax
1004 get {
return agentAccessMax; }
1005 set { agentAccessMax = value; }
1008 public string StartLocation
1010 get {
return startLocation; }
1011 set { startLocation = value; }
1014 public string LookAt
1016 get {
return lookAt; }
1017 set { lookAt = value; }
1020 public string SeedCapability
1022 get {
return seedCapability; }
1023 set { seedCapability = value; }
1026 public string ErrorReason
1028 get {
return errorReason; }
1029 set { errorReason = value; }
1032 public string ErrorMessage
1034 get {
return errorMessage; }
1035 set { errorMessage = value; }
1038 public ArrayList InventoryRoot
1040 get {
return inventoryRoot; }
1041 set { inventoryRoot = value; }
1044 public ArrayList InventorySkeleton
1046 get {
return agentInventory; }
1047 set { agentInventory = value; }
1050 public ArrayList InventoryLibrary
1052 get {
return inventoryLibrary; }
1053 set { inventoryLibrary = value; }
1056 public ArrayList InventoryLibraryOwner
1058 get {
return inventoryLibraryOwner; }
1059 set { inventoryLibraryOwner = value; }
1062 public ArrayList InventoryLibRoot
1064 get {
return inventoryLibRoot; }
1065 set { inventoryLibRoot = value; }
1068 public ArrayList ActiveGestures
1070 get {
return activeGestures; }
1071 set { activeGestures = value; }
1076 get {
return home; }
1077 set { home = value; }
1080 public string MapTileURL
1082 get {
return mapTileURL; }
1083 set { mapTileURL = value; }
1086 public string ProfileURL
1088 get {
return profileURL; }
1089 set { profileURL = value; }
1092 public string OpenIDURL
1094 get {
return openIDURL; }
1095 set { openIDURL = value; }
1098 public string SearchURL
1100 get {
return searchURL; }
1101 set { searchURL = value; }
1104 public string Message
1106 get {
return welcomeMessage; }
1107 set { welcomeMessage = value; }
1110 public BuddyList BuddList
1112 get {
return m_buddyList; }
1113 set { m_buddyList = value; }
1116 public string Currency
1118 get {
return currency; }
1119 set { currency = value; }
1122 public string ClassifiedFee
1124 get {
return classifiedFee; }
1125 set { classifiedFee = value; }
1128 public int MaxAgentGroups
1130 get {
return maxAgentGroups; }
1131 set { maxAgentGroups = value; }
1134 public string DestinationsURL
1139 public string AvatarsURL
1157 public List<BuddyInfo> Buddies =
new List<BuddyInfo>();
1161 if (!Buddies.Contains(buddy))
1169 ArrayList buddyArray =
new ArrayList();
1172 buddyArray.Add(buddy.ToHashTable());
1179 public int BuddyRightsHave = 1;
1180 public int BuddyRightsGiven = 1;
1190 BuddyID = buddyID.ToString();
1195 Hashtable hTable =
new Hashtable();
1196 hTable[
"buddy_rights_has"] = BuddyRightsHave;
1197 hTable[
"buddy_rights_given"] = BuddyRightsGiven;
1198 hTable[
"buddy_id"] = BuddyID;
static LLFailedLoginResponse UserProblem
void SetEventCategories(string category, string value)
static LLFailedLoginResponse GridProblem
void AddClassifiedCategory(Int32 ID, string categoryName)
uint circuitcode
Number given to the client when they log-in that they provide as credentials to the UDP server ...
OpenMetaverse.StructuredData.OSDArray OSDArray
static LLFailedLoginResponse DeadRegionProblem
void AddNewBuddy(BuddyInfo buddy)
OpenMetaverse.StructuredData.OSDMap OSDMap
OpenMetaverse.StructuredData.OSDMap OSDMap
Records user information specific to a grid but which is not part of a user's account.
InventoryFolderImpl LibraryRootFolder
OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString key
UUID SessionID
Non secure Session ID
UUID SecureSessionID
Random Unique GUID for this session. Client gets this at login and it's only supposed to be disclosed...
virtual ArrayList GetLibraryOwner(InventoryFolderImpl libFolder)
static LLFailedLoginResponse InventoryProblem
static LLFailedLoginResponse AlreadyLoggedInProblem
override Hashtable ToHashtable()
Circuit data for an agent. Connection information shared between regions that accept UDP connections ...
OSDArray ArrayListToOSDArray(ArrayList arrlst)
Inventory Item - contains all the properties associated with an individual inventory piece...
int RegionLocY
The location of this region in meters. DANGER DANGER! Note that this name means something different i...
OpenMetaverse.StructuredData.OSD OSD
LLFailedLoginResponse(string key, string value, string login)
static LLFailedLoginResponse UnverifiedAccountProblem
OpenMetaverse.StructuredData.OSDArray OSDArray
static LLFailedLoginResponse InternalError
void AddToUIConfig(string itemName, string item)
InventoryData(ArrayList invList, UUID rootID)
Interactive OpenSim region server
BuddyInfo(string buddyID)
virtual string Name
The name of the node (64 characters or less)
LLLoginResponse(UserAccount account, AgentCircuitData aCircuit, GridUserInfo pinfo, GridRegion destination, List< InventoryFolderBase > invSkel, FriendInfo[] friendsList, ILibraryService libService, string where, string startlocation, Vector3 position, Vector3 lookAt, List< InventoryItemBase > gestures, string message, GridRegion home, IPEndPoint clientIP, string mapTileURL, string profileURL, string openIDURL, string searchURL, string currency, string DSTZone, string destinationsURL, string avatarsURL, UUID realID, string classifiedFee, int maxAgentGroups)
override Hashtable ToHashtable()
int TheirFlags
The permissions that the friend has granted to this user.
virtual ArrayList GetInventoryLibrary(ILibraryService library)
Converts the inventory library skeleton into the form required by the rpc request.
static LLFailedLoginResponse LoginBlockedProblem
OpenSim.Services.Interfaces.FriendInfo FriendInfo
static readonly string ROOT_FOLDER_NAME
A class to handle LL login response.
OpenSim.Services.Interfaces.GridRegion GridRegion