/// <summary> /// Tell a single agent to disconnect from the region. /// </summary> /// <param name="regionHandle"></param> /// <param name="agentID"></param> public bool IncomingCloseAgent(IScene scene, UUID agentID) { //m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID); IScenePresence presence = scene.GetScenePresence(agentID); if (presence != null) { bool RetVal = scene.RemoveAgent(presence); ISyncMessagePosterService syncPoster = scene.RequestModuleInterface <ISyncMessagePosterService> (); if (syncPoster != null) { //Tell the grid that we are logged out syncPoster.Post(SyncMessageHelper.DisableSimulator(presence.UUID, scene.RegionInfo.RegionHandle), scene.RegionInfo.RegionHandle); } return(RetVal); } return(false); }