public void OnClosingClient(UUID clientID, Scene scene)
{
lock (m_authorizedSpeakers)
{
if (m_authorizedSpeakers.Contains(clientID))
m_authorizedSpeakers.Remove(clientID);
}
int AgentCount = 0;
lock (RegionAgentCount)
{
RegionAgentCount.TryGetValue(scene.RegionInfo.RegionID, out AgentCount);
AgentCount--;
if (AgentCount < 0)
AgentCount = 0;
RegionAgentCount[scene.RegionInfo.RegionID] = AgentCount;
}
if (m_announceClosedAgents)
{
string leavingAvatar = scene.GetUserName(clientID);
scene.ForEachScenePresence(delegate(ScenePresence SP)
{
if (SP.UUID != clientID && !SP.IsChildAgent)
{
SP.ControllingClient.SendChatMessage(leavingAvatar + " has left the region. Total Agents: " + AgentCount, 1, SP.AbsolutePosition, "System",
UUID.Zero, (byte)ChatSourceType.System, (byte)ChatAudibleLevel.Fully);
}
}
);
}
}