public virtual void CustomiseResponse(ref Hashtable response, UserProfile theUser) { //default method set up to act as ogs user server SimProfile SimInfo= new SimProfile(); //get siminfo from grid server SimInfo = SimInfo.LoadFromGrid(theUser.homeregionhandle, GridURL, GridSendKey, GridRecvKey); Int32 circode = (Int32)Convert.ToUInt32(response["circuit_code"]); theUser.AddSimCircuit((uint)circode, SimInfo.UUID); response["home"] = "{'region_handle':[r" + (SimInfo.RegionLocX * 256).ToString() + ",r" + (SimInfo.RegionLocY * 256).ToString() + "], 'position':[r" + theUser.homepos.X.ToString() + ",r" + theUser.homepos.Y.ToString() + ",r" + theUser.homepos.Z.ToString() + "], 'look_at':[r" + theUser.homelookat.X.ToString() + ",r" + theUser.homelookat.Y.ToString() + ",r" + theUser.homelookat.Z.ToString() + "]}"; response["sim_ip"] = SimInfo.sim_ip; response["sim_port"] = (Int32)SimInfo.sim_port; response["region_y"] = (Int32)SimInfo.RegionLocY * 256; response["region_x"] = (Int32)SimInfo.RegionLocX * 256; //default is ogs user server, so let the sim know about the user via a XmlRpcRequest Console.WriteLine(SimInfo.caps_url); Hashtable SimParams = new Hashtable(); SimParams["session_id"] = theUser.CurrentSessionID.ToString(); SimParams["secure_session_id"] = theUser.CurrentSecureSessionID.ToString(); SimParams["firstname"] = theUser.firstname; SimParams["lastname"] = theUser.lastname; SimParams["agent_id"] = theUser.UUID.ToString(); SimParams["circuit_code"] = (Int32)circode; SimParams["startpos_x"] = theUser.homepos.X.ToString(); SimParams["startpos_y"] = theUser.homepos.Y.ToString(); SimParams["startpos_z"] = theUser.homepos.Z.ToString(); ArrayList SendParams = new ArrayList(); SendParams.Add(SimParams); XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); XmlRpcResponse GridResp = GridReq.Send(SimInfo.caps_url, 3000); }
public virtual UserProfile CreateNewProfile(string firstname, string lastname, string MD5passwd) { Console.WriteLine("creating new profile for : " + firstname + " , " + lastname); UserProfile newprofile = new UserProfile(); newprofile.homeregionhandle = Helpers.UIntsToLong((997 * 256), (996 * 256)); newprofile.firstname = firstname; newprofile.lastname = lastname; newprofile.MD5passwd = MD5passwd; newprofile.UUID = LLUUID.Random(); newprofile.Inventory.CreateRootFolder(newprofile.UUID, true); this.UserProfiles.Add(newprofile.UUID, newprofile); return newprofile; }
public override void CustomiseResponse(ref System.Collections.Hashtable response, UserProfile theUser) { Int32 circode = (Int32)response["circuit_code"]; theUser.AddSimCircuit((uint)circode, LLUUID.Random()); response["home"] = "{'region_handle':[r" + (997 * 256).ToString() + ",r" + (996 * 256).ToString() + "], 'position':[r" + theUser.homepos.X.ToString() + ",r" + theUser.homepos.Y.ToString() + ",r" + theUser.homepos.Z.ToString() + "], 'look_at':[r" + theUser.homelookat.X.ToString() + ",r" + theUser.homelookat.Y.ToString() + ",r" + theUser.homelookat.Z.ToString() + "]}"; response["sim_port"] = m_port; response["sim_ip"] = m_ipAddr; response["region_y"] = (Int32)regionY* 256; response["region_x"] = (Int32)regionX* 256; string first; string last; if (response.Contains("first_name")) { first = (string)response["first_name"]; } else { first = "test"; } if (response.Contains("last_name")) { last = (string)response["last_name"]; } else { last = "User"; } ArrayList InventoryList = (ArrayList)response["inventory-skeleton"]; Hashtable Inventory1 = (Hashtable)InventoryList[0]; Login _login = new Login(); //copy data to login object _login.First = first; _login.Last = last; _login.Agent = new LLUUID((string)response["agent_id"]) ; _login.Session = new LLUUID((string)response["session_id"]); _login.SecureSession = new LLUUID((string)response["secure_session_id"]); _login.BaseFolder = null; _login.InventoryFolder = new LLUUID((string)Inventory1["folder_id"]); //working on local computer if so lets add to the gridserver's list of sessions? if (m_gridServer.GetName() == "Local") { Console.WriteLine("adding login data to gridserver"); ((LocalGridBase)this.m_gridServer).AddNewSession(_login); } }