diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 5730b56..3cfb236 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2558,7 +2558,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2558 | { | 2558 | { |
2559 | client.OnTeleportLocationRequest += RequestTeleportLocation; | 2559 | client.OnTeleportLocationRequest += RequestTeleportLocation; |
2560 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; | 2560 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; |
2561 | client.OnTeleportHomeRequest += TeleportClientHome; | ||
2562 | } | 2561 | } |
2563 | 2562 | ||
2564 | public virtual void SubscribeToClientScriptEvents(IClientAPI client) | 2563 | public virtual void SubscribeToClientScriptEvents(IClientAPI client) |
@@ -2713,7 +2712,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2713 | { | 2712 | { |
2714 | client.OnTeleportLocationRequest -= RequestTeleportLocation; | 2713 | client.OnTeleportLocationRequest -= RequestTeleportLocation; |
2715 | client.OnTeleportLandmarkRequest -= RequestTeleportLandmark; | 2714 | client.OnTeleportLandmarkRequest -= RequestTeleportLandmark; |
2716 | client.OnTeleportHomeRequest -= TeleportClientHome; | 2715 | //client.OnTeleportHomeRequest -= TeleportClientHome; |
2717 | } | 2716 | } |
2718 | 2717 | ||
2719 | public virtual void UnSubscribeToClientScriptEvents(IClientAPI client) | 2718 | public virtual void UnSubscribeToClientScriptEvents(IClientAPI client) |
@@ -2760,20 +2759,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2760 | /// <param name="client">The IClientAPI for the client</param> | 2759 | /// <param name="client">The IClientAPI for the client</param> |
2761 | public virtual void TeleportClientHome(UUID agentId, IClientAPI client) | 2760 | public virtual void TeleportClientHome(UUID agentId, IClientAPI client) |
2762 | { | 2761 | { |
2763 | OpenSim.Services.Interfaces.PresenceInfo pinfo = PresenceService.GetAgent(client.SessionId); | 2762 | if (m_teleportModule != null) |
2764 | 2763 | m_teleportModule.TeleportHome(agentId, client); | |
2765 | if (pinfo != null) | 2764 | else |
2766 | { | 2765 | { |
2767 | GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, pinfo.HomeRegionID); | 2766 | m_log.DebugFormat("[SCENE]: Unable to teleport user home: no AgentTransferModule is active"); |
2768 | if (regionInfo == null) | 2767 | client.SendTeleportFailed("Unable to perform teleports on this simulator."); |
2769 | { | ||
2770 | // can't find the Home region: Tell viewer and abort | ||
2771 | client.SendTeleportFailed("Your home-region could not be found."); | ||
2772 | return; | ||
2773 | } | ||
2774 | RequestTeleportLocation( | ||
2775 | client, regionInfo.RegionHandle, pinfo.HomePosition, pinfo.HomeLookAt, | ||
2776 | (uint)(TPFlags.SetLastToTarget | TPFlags.ViaHome)); | ||
2777 | } | 2768 | } |
2778 | } | 2769 | } |
2779 | 2770 | ||