mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 18:55:58 +08:00
Add persistence of active gestures. This needs an UGAIM update to work.
Active gestures are sent as part of the login-response. Added fetchActiveGestures to SQLite and MySQL; added an empty one for MSSQL and NHibernate. Using the empty ones won't cause errors, but doesn't provide persistence either, of course.
This commit is contained in:
@@ -49,5 +49,16 @@ namespace OpenSim.Framework.Communications
|
||||
/// <returns>A flat list of the user's inventory folder tree,
|
||||
/// null if there is no inventory for this user</returns>
|
||||
List<InventoryFolderBase> GetInventorySkeleton(UUID userId);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of all the active gestures in a user's inventory.
|
||||
/// </summary>
|
||||
/// <param name="userId">
|
||||
/// The <see cref="UUID"/> of the user
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// A flat list of the gesture items.
|
||||
/// </returns>
|
||||
List<InventoryItemBase> GetActiveGestures(UUID userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,6 +148,15 @@ namespace OpenSim.Framework.Communications
|
||||
// See IInventoryServices
|
||||
public abstract void RequestInventoryForUser(UUID userID, InventoryReceiptCallback callback);
|
||||
|
||||
public List<InventoryItemBase> GetActiveGestures(UUID userId)
|
||||
{
|
||||
foreach (IInventoryDataPlugin plugin in m_plugins)
|
||||
{
|
||||
return plugin.fetchActiveGestures(userId);
|
||||
}
|
||||
return new List<InventoryItemBase>();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods used by GridInventoryService
|
||||
|
||||
@@ -60,6 +60,7 @@ namespace OpenSim.Framework.Communications
|
||||
private ArrayList inventoryLibraryOwner;
|
||||
private ArrayList inventoryLibRoot;
|
||||
private ArrayList inventoryLibrary;
|
||||
private ArrayList activeGestures;
|
||||
|
||||
private UserInfo userProfile;
|
||||
|
||||
@@ -124,6 +125,7 @@ namespace OpenSim.Framework.Communications
|
||||
agentInventory = new ArrayList();
|
||||
inventoryLibrary = new ArrayList();
|
||||
inventoryLibraryOwner = new ArrayList();
|
||||
activeGestures = new ArrayList();
|
||||
|
||||
xmlRpcResponse = new XmlRpcResponse();
|
||||
// defaultXmlRpcResponse = new XmlRpcResponse();
|
||||
@@ -355,7 +357,7 @@ namespace OpenSim.Framework.Communications
|
||||
responseData["inventory-skel-lib"] = inventoryLibrary;
|
||||
responseData["inventory-root"] = inventoryRoot;
|
||||
responseData["inventory-lib-root"] = inventoryLibRoot;
|
||||
responseData["gestures"] = new ArrayList(); // todo
|
||||
responseData["gestures"] = activeGestures;
|
||||
responseData["inventory-lib-owner"] = inventoryLibraryOwner;
|
||||
responseData["initial-outfit"] = initialOutfit;
|
||||
responseData["start_location"] = startLocation;
|
||||
@@ -452,7 +454,7 @@ namespace OpenSim.Framework.Communications
|
||||
|
||||
#endregion Inventory
|
||||
|
||||
map["gestures"] = new LLSDArray(); // todo
|
||||
map["gestures"] = ArrayListToLLSDArray(activeGestures);
|
||||
|
||||
map["initial-outfit"] = ArrayListToLLSDArray(initialOutfit);
|
||||
map["start_location"] = LLSD.FromString(startLocation);
|
||||
@@ -699,6 +701,12 @@ namespace OpenSim.Framework.Communications
|
||||
set { inventoryLibRoot = value; }
|
||||
}
|
||||
|
||||
public ArrayList ActiveGestures
|
||||
{
|
||||
get { return activeGestures; }
|
||||
set { activeGestures = value; }
|
||||
}
|
||||
|
||||
public string Home
|
||||
{
|
||||
get { return home; }
|
||||
|
||||
@@ -131,6 +131,17 @@ namespace OpenSim.Framework
|
||||
/// </summary>
|
||||
/// <param name="folder">The id of the folder</param>
|
||||
void deleteInventoryFolder(UUID folder);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all activated gesture-items in the inventory of the specified avatar.
|
||||
/// </summary>
|
||||
/// <param name="avatarID">
|
||||
/// The <see cref="UUID"/> of the avatar
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The list of gestures (<see cref="InventoryItemBase"/>s)
|
||||
/// </returns>
|
||||
List<InventoryItemBase> fetchActiveGestures(UUID avatarID);
|
||||
}
|
||||
|
||||
public class InventoryDataInitialiser : PluginInitialiserBase
|
||||
|
||||
Reference in New Issue
Block a user