From a553e6f67ce2595868ceba0184f730af640961cf Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Tue, 4 Dec 2007 16:07:59 +0000 Subject: * Avatar picker works in grid mode now. * To test, click the communicate button, then click the 'add' button and type a name. You will get a list of closely matching avatar names. * Before this'll work on your sim in grid mode, the UGA needs to be updated. If it isn't updated, then you'll get a message on the sim console when searching like, 'got invalid queryid'. --- OpenSim/Grid/UserServer/UserManager.cs | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'OpenSim/Grid/UserServer/UserManager.cs') diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 58e9677..16eedcd 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs @@ -27,6 +27,7 @@ */ using System; using System.Collections; +using System.Collections.Generic; using libsecondlife; using Nwc.XmlRpc; using OpenSim.Framework; @@ -70,6 +71,24 @@ namespace OpenSim.Grid.UserServer return response; } + public XmlRpcResponse AvatarPickerListtoXmlRPCResponse(LLUUID queryID, List returnUsers) + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable responseData = new Hashtable(); + // Query Result Information + responseData["queryid"] = (string)queryID.ToStringHyphenated(); + responseData["avcount"] = (string)returnUsers.Count.ToString(); + + for (int i = 0; i < returnUsers.Count; i++) + { + responseData["avatarid" + i.ToString()] = returnUsers[i].AvatarID.ToStringHyphenated(); + responseData["firstname" + i.ToString()] = returnUsers[i].firstName; + responseData["lastname" + i.ToString()] = returnUsers[i].lastName; + } + response.Value = responseData; + + return response; + } /// /// Converts a user profile to an XML element which can be returned /// @@ -113,6 +132,23 @@ namespace OpenSim.Grid.UserServer #region XMLRPC User Methods + public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request) + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable requestData = (Hashtable)request.Params[0]; + List returnAvatar = new List(); + LLUUID queryID = new LLUUID(LLUUID.Zero.ToStringHyphenated()); + + if (requestData.Contains("avquery") && requestData.Contains("queryid")) + { + queryID = new LLUUID((string)requestData["queryid"]); + returnAvatar = GenerateAgentPickerRequestResponse(queryID,(string)requestData["avquery"]); + } + + Console.WriteLine("[AVATARINFO]: Servicing Avatar Query: " + (string)requestData["avquery"]); + return AvatarPickerListtoXmlRPCResponse(queryID,returnAvatar); + } + public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request) { XmlRpcResponse response = new XmlRpcResponse(); -- cgit v1.1