aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs15
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index f4bb2d3..7e13671 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -52,6 +52,7 @@ using Caps = OpenSim.Framework.Communications.Capabilities.Caps;
52using Image = System.Drawing.Image; 52using Image = System.Drawing.Image;
53using TPFlags = OpenSim.Framework.Constants.TeleportFlags; 53using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
54using Timer = System.Timers.Timer; 54using Timer = System.Timers.Timer;
55using OSD = OpenMetaverse.StructuredData.OSD;
55 56
56namespace OpenSim.Region.Environment.Scenes 57namespace OpenSim.Region.Environment.Scenes
57{ 58{
@@ -2807,9 +2808,10 @@ namespace OpenSim.Region.Environment.Scenes
2807 2808
2808 capsPaths[agent.AgentID] = agent.CapsPath; 2809 capsPaths[agent.AgentID] = agent.CapsPath;
2809 2810
2811 AddCapsHandler(agent.AgentID);
2812
2810 if (!agent.child) 2813 if (!agent.child)
2811 { 2814 {
2812 AddCapsHandler(agent.AgentID);
2813 2815
2814 // Honor parcel landing type and position. 2816 // Honor parcel landing type and position.
2815 ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y); 2817 ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y);
@@ -3027,7 +3029,18 @@ namespace OpenSim.Region.Environment.Scenes
3027 // } 3029 // }
3028 3030
3029 // Tell a single agent to disconnect from the region. 3031 // Tell a single agent to disconnect from the region.
3032 // This sends DisableSimulator over UDP, but that doesn't seem to be working
3033 // well with the latest LL viewer, so we're sending it also via the EQ
3030 presence.ControllingClient.SendShutdownConnectionNotice(); 3034 presence.ControllingClient.SendShutdownConnectionNotice();
3035 IEventQueue eq = RequestModuleInterface<IEventQueue>();
3036 if (eq != null)
3037 {
3038 OSD Item = EventQueueHelper.DisableSimulator(m_regInfo.RegionHandle);
3039 eq.Enqueue(Item, agentID);
3040 m_log.Debug("[Scene]: Enqueuing DisableSimulator for " + agentID + " in region " + m_regInfo.RegionName);
3041 Thread.Sleep(2000);
3042 }
3043 RemoveCapsHandler(agentID);
3031 3044
3032 presence.ControllingClient.Close(true); 3045 presence.ControllingClient.Close(true);
3033 } 3046 }