When a shared module hooks OnClientClosed, it has no way of finding

out which client connection has closed. So, in multi-region sims, things
can get messy fast.
This introduces a second parameters, which is a Scene object ref. Minor
adjustments to custom modules may be required due to this change.
This commit is contained in:
Melanie Thielker
2009-06-19 20:46:17 +00:00
parent 19b52d13e2
commit e4d26d7bfa
9 changed files with 13 additions and 13 deletions

View File

@@ -382,7 +382,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
client.OnLogout += OnLogout;
}
private void ClientClosed(UUID AgentId)
private void ClientClosed(UUID AgentId, Scene scene)
{
// agent's client was closed. As we handle logout in OnLogout, this here has only to handle
// TPing away (root agent is closed) or TPing/crossing in a region far enough away (client

View File

@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
remote_client.SendGroupNameReply(groupUUID, groupnamereply);
}
private void OnClientClosed(UUID agentID)
private void OnClientClosed(UUID agentID, Scene scene)
{
lock (m_ClientMap)
{

View File

@@ -368,7 +368,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
return false;
}
public void ClientLoggedOut(UUID agentID)
public void ClientLoggedOut(UUID agentID, Scene scene)
{
if (m_AgentRegions.ContainsKey(agentID))
m_AgentRegions.Remove(agentID);

View File

@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue
// ClientClosed(client.AgentId);
// }
private void ClientClosed(UUID AgentID)
private void ClientClosed(UUID AgentID, Scene scene)
{
m_log.DebugFormat("[EVENTQUEUE]: Closed client {0} in region {1}", AgentID, m_scene.RegionInfo.RegionName);

View File

@@ -287,7 +287,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
/// Event handler
/// </summary>
/// <param name="AgentId">AgentID that logged out</param>
private void ClientLoggedOut(UUID AgentId)
private void ClientLoggedOut(UUID AgentId, Scene scene)
{
List<ScenePresence> presences = m_scene.GetAvatars();
int rootcount = 0;