mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 02:05:34 +08:00
XInventory connector/handler showing signs of life. Tested, but needs more testing.
This commit is contained in:
@@ -228,9 +228,17 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
|
||||
List<InventoryFolderBase> folders = m_InventoryService.GetInventorySkeleton(new UUID(request["PRINCIPAL"].ToString()));
|
||||
|
||||
Dictionary<string, object> sfolders = new Dictionary<string, object>();
|
||||
if (folders != null)
|
||||
{
|
||||
int i = 0;
|
||||
foreach (InventoryFolderBase f in folders)
|
||||
result[f.ID.ToString()] = EncodeFolder(f);
|
||||
{
|
||||
sfolders["folder_" + i.ToString()] = EncodeFolder(f);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
result["FOLDERS"] = sfolders;
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -246,7 +254,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
|
||||
InventoryFolderBase rfolder = m_InventoryService.GetRootFolder(principal);
|
||||
if (rfolder != null)
|
||||
result[rfolder.ID.ToString()] = EncodeFolder(rfolder);
|
||||
result["folder"] = EncodeFolder(rfolder);
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -263,7 +271,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
Int32.TryParse(request["TYPE"].ToString(), out type);
|
||||
InventoryFolderBase folder = m_InventoryService.GetFolderForType(principal, (AssetType)type);
|
||||
if (folder != null)
|
||||
result[folder.ID.ToString()] = EncodeFolder(folder);
|
||||
result["folder"] = EncodeFolder(folder);
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -283,13 +291,21 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
if (icoll != null)
|
||||
{
|
||||
Dictionary<string, object> folders = new Dictionary<string, object>();
|
||||
int i = 0;
|
||||
foreach (InventoryFolderBase f in icoll.Folders)
|
||||
folders[f.ID.ToString()] = EncodeFolder(f);
|
||||
{
|
||||
folders["folder_" + i.ToString()] = EncodeFolder(f);
|
||||
i++;
|
||||
}
|
||||
result["FOLDERS"] = folders;
|
||||
|
||||
i = 0;
|
||||
Dictionary<string, object> items = new Dictionary<string, object>();
|
||||
foreach (InventoryItemBase i in icoll.Items)
|
||||
items[i.ID.ToString()] = EncodeItem(i);
|
||||
foreach (InventoryItemBase it in icoll.Items)
|
||||
{
|
||||
items["item_" + i.ToString()] = EncodeItem(it);
|
||||
i++;
|
||||
}
|
||||
result["ITEMS"] = items;
|
||||
}
|
||||
|
||||
@@ -308,9 +324,18 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
UUID.TryParse(request["FOLDER"].ToString(), out folderID);
|
||||
|
||||
List<InventoryItemBase> items = m_InventoryService.GetFolderItems(principal, folderID);
|
||||
Dictionary<string, object> sitems = new Dictionary<string, object>();
|
||||
|
||||
if (items != null)
|
||||
{
|
||||
int i = 0;
|
||||
foreach (InventoryItemBase item in items)
|
||||
result[item.ID.ToString()] = EncodeItem(item);
|
||||
{
|
||||
sitems["item_" + i.ToString()] = EncodeItem(item);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
result["ITEMS"] = sitems;
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -483,7 +508,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
InventoryItemBase item = new InventoryItemBase(id);
|
||||
item = m_InventoryService.GetItem(item);
|
||||
if (item != null)
|
||||
result[item.ID.ToString()] = EncodeItem(item);
|
||||
result["item"] = EncodeItem(item);
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -500,7 +525,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
InventoryFolderBase folder = new InventoryFolderBase(id);
|
||||
folder = m_InventoryService.GetFolder(folder);
|
||||
if (folder != null)
|
||||
result[folder.ID.ToString()] = EncodeFolder(folder);
|
||||
result["folder"] = EncodeFolder(folder);
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -515,9 +540,17 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
|
||||
|
||||
List<InventoryItemBase> gestures = m_InventoryService.GetActiveGestures(principal);
|
||||
Dictionary<string, object> items = new Dictionary<string, object>();
|
||||
if (gestures != null)
|
||||
{
|
||||
int i = 0;
|
||||
foreach (InventoryItemBase item in gestures)
|
||||
result[item.ID.ToString()] = EncodeItem(item);
|
||||
{
|
||||
items["item_" + i.ToString()] = EncodeItem(item);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
result["ITEMS"] = items;
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -549,10 +582,16 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
|
||||
|
||||
Dictionary<AssetType, InventoryFolderBase> sfolders = GetSystemFolders(principal);
|
||||
m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count);
|
||||
|
||||
if (sfolders != null)
|
||||
foreach (KeyValuePair<AssetType, InventoryFolderBase> kvp in sfolders)
|
||||
result[kvp.Key.ToString()] = EncodeFolder(kvp.Value);
|
||||
Dictionary<string, object> folders = new Dictionary<string, object>();
|
||||
int i = 0;
|
||||
foreach (KeyValuePair<AssetType, InventoryFolderBase> kvp in sfolders)
|
||||
{
|
||||
folders["folder_" + i.ToString()] = EncodeFolder(kvp.Value);
|
||||
i++;
|
||||
}
|
||||
result["FOLDERS"] = folders;
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
|
||||
@@ -589,7 +628,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
ret["Flags"] = item.Flags.ToString();
|
||||
ret["Folder"] = item.Folder.ToString();
|
||||
ret["GroupID"] = item.GroupID.ToString();
|
||||
ret["GroupedOwned"] = item.GroupOwned.ToString();
|
||||
ret["GroupOwned"] = item.GroupOwned.ToString();
|
||||
ret["GroupPermissions"] = item.GroupPermissions.ToString();
|
||||
ret["ID"] = item.ID.ToString();
|
||||
ret["InvType"] = item.InvType.ToString();
|
||||
@@ -664,7 +703,7 @@ namespace OpenSim.Server.Handlers.Asset
|
||||
return folders;
|
||||
}
|
||||
}
|
||||
m_log.WarnFormat("[INVENTORY SERVICE]: System folders for {0} not found", userID);
|
||||
m_log.WarnFormat("[XINVENTORY SERVICE]: System folders for {0} not found", userID);
|
||||
return new Dictionary<AssetType, InventoryFolderBase>();
|
||||
}
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user