aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs
index 9dd2426..5d34773 100644
--- a/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGSceneCommunicationService.cs
@@ -149,6 +149,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid
149 149
150 if (destRegionUp) 150 if (destRegionUp)
151 { 151 {
152
152 // Fixing a bug where teleporting while sitting results in the avatar ending up removed from 153 // Fixing a bug where teleporting while sitting results in the avatar ending up removed from
153 // both regions 154 // both regions
154 if (avatar.ParentID != (uint)0) 155 if (avatar.ParentID != (uint)0)
@@ -169,6 +170,17 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid
169 agent.child = false; 170 agent.child = false;
170 m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent); 171 m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agent);
171 172
173 if (eq != null)
174 {
175 OSD Item = EventQueueHelper.EnableSimulator(realHandle, reg.ExternalEndPoint);
176 eq.Enqueue(Item, avatar.UUID);
177 }
178 else
179 {
180 avatar.ControllingClient.InformClientOfNeighbour(realHandle, reg.ExternalEndPoint);
181 // TODO: make Event Queue disablable!
182 }
183
172 m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId, 184 m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId,
173 position, false); 185 position, false);
174 Thread.Sleep(2000); 186 Thread.Sleep(2000);
@@ -223,6 +235,12 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid
223 { 235 {
224 //SendCloseChildAgentConnections(avatar.UUID, avatar.GetKnownRegionList()); 236 //SendCloseChildAgentConnections(avatar.UUID, avatar.GetKnownRegionList());
225 SendCloseChildAgentConnections(avatar.UUID, childRegions); 237 SendCloseChildAgentConnections(avatar.UUID, childRegions);
238 if (eq != null)
239 {
240 OSD Item = EventQueueHelper.DisableSimulator(m_regionInfo.RegionHandle);
241 eq.Enqueue(Item, avatar.UUID);
242 }
243 Thread.Sleep(2000);
226 CloseConnection(avatar.UUID); 244 CloseConnection(avatar.UUID);
227 } 245 }
228 // if (teleport success) // seems to be always success here 246 // if (teleport success) // seems to be always success here