Add code to the inventory transfer module to use the new DB functionality
Not tested!0.6.5-rc1
parent
b0f2bcbe79
commit
1e6587f1d3
|
@ -79,6 +79,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
||||||
|
|
||||||
scene.EventManager.OnNewClient += OnNewClient;
|
scene.EventManager.OnNewClient += OnNewClient;
|
||||||
scene.EventManager.OnClientClosed += ClientLoggedOut;
|
scene.EventManager.OnClientClosed += ClientLoggedOut;
|
||||||
|
scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,5 +385,76 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
|
||||||
if (m_AgentRegions.ContainsKey(agentID))
|
if (m_AgentRegions.ContainsKey(agentID))
|
||||||
m_AgentRegions.Remove(agentID);
|
m_AgentRegions.Remove(agentID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg"></param>
|
||||||
|
private void OnGridInstantMessage(GridInstantMessage msg)
|
||||||
|
{
|
||||||
|
Scene scene = FindClientScene(new UUID(msg.toAgentID));
|
||||||
|
|
||||||
|
// Find agent to deliver to
|
||||||
|
//
|
||||||
|
ScenePresence user = scene.GetScenePresence(new UUID(msg.toAgentID));
|
||||||
|
|
||||||
|
if (user == null) // Shouldn't happen
|
||||||
|
{
|
||||||
|
m_log.Debug("[INVENTORY TRANSFER] Can't find recipient");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CachedUserInfo userInfo =
|
||||||
|
scene.CommsManager.UserProfileCacheService.
|
||||||
|
GetUserDetails(user.ControllingClient.AgentId);
|
||||||
|
|
||||||
|
if (userInfo == null)
|
||||||
|
{
|
||||||
|
m_log.Debug("[INVENTORY TRANSFER] Can't find user info of recipient");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AssetType assetType = (AssetType)msg.binaryBucket[0];
|
||||||
|
|
||||||
|
if (AssetType.Folder == assetType)
|
||||||
|
{
|
||||||
|
// Folders not implemented yet
|
||||||
|
//
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UUID itemID = new UUID(msg.binaryBucket, 1);
|
||||||
|
|
||||||
|
// Fetch from database
|
||||||
|
//
|
||||||
|
if (!userInfo.QueryItem(itemID))
|
||||||
|
{
|
||||||
|
m_log.Debug("[INVENTORY TRANSFER] Can't find item to give");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get item info
|
||||||
|
//
|
||||||
|
InventoryItemBase item = userInfo.RootFolder.FindItem(itemID);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
m_log.Debug("[INVENTORY TRANSFER] Can't retrieve item to give");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update item to viewer (makes it appear in proper folder)
|
||||||
|
//
|
||||||
|
user.ControllingClient.SendBulkUpdateInventory(item);
|
||||||
|
|
||||||
|
// Deliver message
|
||||||
|
//
|
||||||
|
user.ControllingClient.SendInstantMessage(
|
||||||
|
new UUID(msg.fromAgentID), msg.message,
|
||||||
|
new UUID(msg.toAgentID),
|
||||||
|
msg.fromAgentName, msg.dialog, msg.timestamp,
|
||||||
|
itemID, false, msg.binaryBucket);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue