diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 17 |
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 | } |