public byte[] HandleFetchLib(string request, UUID AgentID) { try { //m_log.DebugFormat("[InventoryCAPS]: Received FetchLib request for {0}", AgentID); OSDMap requestmap = (OSDMap)OSDParser.DeserializeLLSDXml(OpenMetaverse.Utils.StringToBytes(request)); OSDArray foldersrequested = (OSDArray)requestmap["items"]; OSDMap map = new OSDMap(); map.Add("agent_id", OSD.FromUUID(AgentID)); OSDArray items = new OSDArray(); for (int i = 0; i < foldersrequested.Count; i++) { OSDMap requestedFolders = (OSDMap)foldersrequested[i]; //UUID owner_id = requestedFolders["owner_id"].AsUUID(); UUID item_id = requestedFolders["item_id"].AsUUID(); OSDArray item = m_inventoryService.GetItem(item_id); if(item != null && item.Count > 0) items.Add(item[0]); } map.Add("items", items); byte[] response = OSDParser.SerializeLLSDXmlBytes(map); map.Clear(); return response; } catch (Exception ex) { m_log.Warn("[InventoryCaps]: SERIOUS ISSUE! " + ex.ToString()); } OSDMap rmap = new OSDMap(); rmap["items"] = new OSDArray(); return OSDParser.SerializeLLSDXmlBytes(rmap); }