aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs17
1 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index fa9cd55..feb783f 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -172,13 +172,17 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
172 // Reset animations; the viewer does that in teleports. 172 // Reset animations; the viewer does that in teleports.
173 sp.Animator.ResetAnimations(); 173 sp.Animator.ResetAnimations();
174 174
175 string destinationRegionName = "(not found)";
176
175 try 177 try
176 { 178 {
177 if (regionHandle == sp.Scene.RegionInfo.RegionHandle) 179 if (regionHandle == sp.Scene.RegionInfo.RegionHandle)
178 { 180 {
181 destinationRegionName = sp.Scene.RegionInfo.RegionName;
182
179 m_log.DebugFormat( 183 m_log.DebugFormat(
180 "[ENTITY TRANSFER MODULE]: RequestTeleportToLocation {0} within {1}", 184 "[ENTITY TRANSFER MODULE]: RequestTeleportToLocation for {0} to {1} within existing region {2}",
181 position, sp.Scene.RegionInfo.RegionName); 185 sp.Name, position, destinationRegionName);
182 186
183 // Teleport within the same region 187 // Teleport within the same region
184 if (IsOutsideRegion(sp.Scene, position) || position.Z < 0) 188 if (IsOutsideRegion(sp.Scene, position) || position.Z < 0)
@@ -188,6 +192,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
188 m_log.WarnFormat( 192 m_log.WarnFormat(
189 "[ENTITY TRANSFER MODULE]: RequestTeleportToLocation() was given an illegal position of {0} for avatar {1}, {2}. Substituting {3}", 193 "[ENTITY TRANSFER MODULE]: RequestTeleportToLocation() was given an illegal position of {0} for avatar {1}, {2}. Substituting {3}",
190 position, sp.Name, sp.UUID, emergencyPos); 194 position, sp.Name, sp.UUID, emergencyPos);
195
191 position = emergencyPos; 196 position = emergencyPos;
192 } 197 }
193 198
@@ -233,6 +238,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
233 return; 238 return;
234 } 239 }
235 240
241 destinationRegionName = finalDestination.RegionName;
242
236 // check if HyperGrid teleport is allowed, based on user level 243 // check if HyperGrid teleport is allowed, based on user level
237 int flags = m_aScene.GridService.GetRegionFlags(sp.Scene.RegionInfo.ScopeID, reg.RegionID); 244 int flags = m_aScene.GridService.GetRegionFlags(sp.Scene.RegionInfo.ScopeID, reg.RegionID);
238 245
@@ -307,7 +314,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
307 } 314 }
308 catch (Exception e) 315 catch (Exception e)
309 { 316 {
310 m_log.WarnFormat("[ENTITY TRANSFER MODULE]: Exception on teleport: {0} {1}", e.Message, e.StackTrace); 317 m_log.ErrorFormat(
318 "[ENTITY TRANSFER MODULE]: Exception on teleport of {0} from {1}@{2} to {3}@{4}: {5}{6}",
319 sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, destinationRegionName,
320 e.Message, e.StackTrace);
321
311 sp.ControllingClient.SendTeleportFailed("Internal error"); 322 sp.ControllingClient.SendTeleportFailed("Internal error");
312 } 323 }
313 } 324 }