aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs35
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs37
2 files changed, 34 insertions, 38 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 622d057..fcc7a85 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
50 { 50 {
51 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 51 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
52 52
53 private bool m_Enabled = false; 53 protected bool m_Enabled = false;
54 protected Scene m_aScene; 54 protected Scene m_aScene;
55 protected List<UUID> m_agentsInTransit; 55 protected List<UUID> m_agentsInTransit;
56 56
@@ -94,6 +94,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
94 m_aScene = scene; 94 m_aScene = scene;
95 95
96 scene.RegisterModuleInterface<IEntityTransferModule>(this); 96 scene.RegisterModuleInterface<IEntityTransferModule>(this);
97 scene.EventManager.OnNewClient += OnNewClient;
98 }
99
100 protected void OnNewClient(IClientAPI client)
101 {
102 client.OnTeleportHomeRequest += TeleportHome;
97 } 103 }
98 104
99 public virtual void Close() 105 public virtual void Close()
@@ -499,6 +505,33 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
499 505
500 #endregion 506 #endregion
501 507
508 #region Teleport Home
509
510 public virtual void TeleportHome(UUID id, IClientAPI client)
511 {
512 m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Request to teleport {0} {1} home", client.FirstName, client.LastName);
513
514 OpenSim.Services.Interfaces.PresenceInfo pinfo = m_aScene.PresenceService.GetAgent(client.SessionId);
515
516 if (pinfo != null)
517 {
518 GridRegion regionInfo = m_aScene.GridService.GetRegionByUUID(UUID.Zero, pinfo.HomeRegionID);
519 if (regionInfo == null)
520 {
521 // can't find the Home region: Tell viewer and abort
522 client.SendTeleportFailed("Your home region could not be found.");
523 return;
524 }
525 // a little eekie that this goes back to Scene and with a forced cast, will fix that at some point...
526 ((Scene)(client.Scene)).RequestTeleportLocation(
527 client, regionInfo.RegionHandle, pinfo.HomePosition, pinfo.HomeLookAt,
528 (uint)(Constants.TeleportFlags.SetLastToTarget | Constants.TeleportFlags.ViaHome));
529 }
530 }
531
532 #endregion
533
534
502 #region Agent Crossings 535 #region Agent Crossings
503 536
504 public void Cross(ScenePresence agent, bool isFlying) 537 public void Cross(ScenePresence agent, bool isFlying)
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index 6645293..101aea0 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -47,7 +47,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
47 { 47 {
48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
49 49
50 private bool m_Enabled = false;
51 private IHypergridService m_HypergridService; 50 private IHypergridService m_HypergridService;
52 private IHypergridService HyperGridService 51 private IHypergridService HyperGridService
53 { 52 {
@@ -84,42 +83,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
84 } 83 }
85 } 84 }
86 85
87 public override void PostInitialise()
88 {
89 }
90
91 public override void AddRegion(Scene scene)
92 {
93 if (!m_Enabled)
94 return;
95
96 if (m_aScene == null)
97 m_aScene = scene;
98
99 scene.RegisterModuleInterface<IEntityTransferModule>(this);
100 }
101
102 public override void Close()
103 {
104 if (!m_Enabled)
105 return;
106 }
107
108
109 public override void RemoveRegion(Scene scene)
110 {
111 if (!m_Enabled)
112 return;
113 if (scene == m_aScene)
114 m_aScene = null;
115 }
116
117 public override void RegionLoaded(Scene scene)
118 {
119 if (!m_Enabled)
120 return;
121
122 }
123 86
124 #endregion 87 #endregion
125 88