mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 10:46:00 +08:00
* Working towards notifying the client if the inventory service has failed, rather than simply returning 0 items.
* This is very early support which would only be triggered in a rather unlikely case (if the user server correctly received an inventory skeleton, but later on failed to return the whole inventory in a timely manner. Also, this only applies to the 1.19.1.4 client onwards * Code cleanup and support for other failure cases (failure of inventory caching on region crossing, failure to actually add a folder/item, etc, should follow.
This commit is contained in:
@@ -1576,7 +1576,8 @@ namespace OpenSim.Region.ClientStack
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// Send an alert message to the client. On the Linden client (tested 1.19.1.4), this pops up a brief duration
|
||||
/// blue information box in the bottom right hand corner.
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void SendAlertMessage(string message)
|
||||
@@ -1587,10 +1588,12 @@ namespace OpenSim.Region.ClientStack
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// Send an agent alert message to the client.
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <param name="modal"></param>
|
||||
/// <param name="modal">On the linden client, if this true then it displays a one button text box placed in the
|
||||
/// middle of the window. If false, the message is displayed in a brief duration blue information box (as for
|
||||
/// the AlertMessage packet).</param>
|
||||
public void SendAgentAlertMessage(string message, bool modal)
|
||||
{
|
||||
AgentAlertMessagePacket alertPack = (AgentAlertMessagePacket)PacketPool.Instance.GetPacket(PacketType.AgentAlertMessage);
|
||||
|
||||
@@ -618,6 +618,28 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the controlling client for the given avatar, if there is one.
|
||||
///
|
||||
/// FIXME: The only user of the method right now is Caps.cs, in order to resolve a client API since it can't
|
||||
/// use the ScenePresence. This could be better solved in a number of ways - we could establish an
|
||||
/// OpenSim.Framework.IScenePresence, or move the caps code into a region package (which might be the more
|
||||
/// suitable solution).
|
||||
/// </summary>
|
||||
/// <param name="agentId"></param>
|
||||
/// <returns>null if either the avatar wasn't in the scene, or they do not have a controlling client</returns>
|
||||
public IClientAPI GetControllingClient(LLUUID agentId)
|
||||
{
|
||||
ScenePresence presence = GetScenePresence(agentId);
|
||||
|
||||
if (presence != null)
|
||||
{
|
||||
return presence.ControllingClient;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Request a filtered list of m_scenePresences in this World
|
||||
@@ -640,16 +662,17 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Request a Avatar by UUID
|
||||
/// Request a scene presence by UUID
|
||||
/// </summary>
|
||||
/// <param name="avatarID"></param>
|
||||
/// <returns></returns>
|
||||
public ScenePresence GetScenePresence(LLUUID avatarID)
|
||||
/// <returns>null if the agent was not found</returns>
|
||||
public ScenePresence GetScenePresence(LLUUID agentID)
|
||||
{
|
||||
if (ScenePresences.ContainsKey(avatarID))
|
||||
if (ScenePresences.ContainsKey(agentID))
|
||||
{
|
||||
return ScenePresences[avatarID];
|
||||
return ScenePresences[agentID];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1884,7 +1884,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset;
|
||||
cap.TaskScriptUpdatedCall = CapsUpdateTaskInventoryScriptAsset;
|
||||
cap.CAPSFetchInventoryDescendents = CommsManager.UserProfileCacheService.HandleFetchInventoryDescendentsCAPS;
|
||||
|
||||
cap.GetClient = m_innerScene.GetControllingClient;
|
||||
m_capsHandlers[agentId] = cap;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user