diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index a87279a..6daae62 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -84,7 +84,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
84 | 84 | ||
85 | protected override void OnNewClient(IClientAPI client) | 85 | protected override void OnNewClient(IClientAPI client) |
86 | { | 86 | { |
87 | client.OnTeleportHomeRequest += TeleportHome; | 87 | client.OnTeleportHomeRequest += TriggerTeleportHome; |
88 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; | 88 | client.OnTeleportLandmarkRequest += RequestTeleportLandmark; |
89 | client.OnConnectionClosed += new Action<IClientAPI>(OnConnectionClosed); | 89 | client.OnConnectionClosed += new Action<IClientAPI>(OnConnectionClosed); |
90 | } | 90 | } |
@@ -179,7 +179,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
179 | return m_aScene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason); | 179 | return m_aScene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason); |
180 | } | 180 | } |
181 | 181 | ||
182 | public override void TeleportHome(UUID id, IClientAPI client) | 182 | public void TriggerTeleportHome(UUID id, IClientAPI client) |
183 | { | ||
184 | TeleportHome(id, client); | ||
185 | } | ||
186 | |||
187 | public override bool TeleportHome(UUID id, IClientAPI client) | ||
183 | { | 188 | { |
184 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Request to teleport {0} {1} home", client.FirstName, client.LastName); | 189 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Request to teleport {0} {1} home", client.FirstName, client.LastName); |
185 | 190 | ||
@@ -189,8 +194,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
189 | { | 194 | { |
190 | // local grid user | 195 | // local grid user |
191 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: User is local"); | 196 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: User is local"); |
192 | base.TeleportHome(id, client); | 197 | return base.TeleportHome(id, client); |
193 | return; | ||
194 | } | 198 | } |
195 | 199 | ||
196 | // Foreign user wants to go home | 200 | // Foreign user wants to go home |
@@ -200,7 +204,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
200 | { | 204 | { |
201 | client.SendTeleportFailed("Your information has been lost"); | 205 | client.SendTeleportFailed("Your information has been lost"); |
202 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Unable to locate agent's gateway information"); | 206 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Unable to locate agent's gateway information"); |
203 | return; | 207 | return false; |
204 | } | 208 | } |
205 | 209 | ||
206 | IUserAgentService userAgentService = new UserAgentServiceConnector(aCircuit.ServiceURLs["HomeURI"].ToString()); | 210 | IUserAgentService userAgentService = new UserAgentServiceConnector(aCircuit.ServiceURLs["HomeURI"].ToString()); |
@@ -210,7 +214,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
210 | { | 214 | { |
211 | client.SendTeleportFailed("Your home region could not be found"); | 215 | client.SendTeleportFailed("Your home region could not be found"); |
212 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Agent's home region not found"); | 216 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Agent's home region not found"); |
213 | return; | 217 | return false; |
214 | } | 218 | } |
215 | 219 | ||
216 | ScenePresence sp = ((Scene)(client.Scene)).GetScenePresence(client.AgentId); | 220 | ScenePresence sp = ((Scene)(client.Scene)).GetScenePresence(client.AgentId); |
@@ -218,7 +222,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
218 | { | 222 | { |
219 | client.SendTeleportFailed("Internal error"); | 223 | client.SendTeleportFailed("Internal error"); |
220 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Agent not found in the scene where it is supposed to be"); | 224 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Agent not found in the scene where it is supposed to be"); |
221 | return; | 225 | return false; |
222 | } | 226 | } |
223 | 227 | ||
224 | IEventQueue eq = sp.Scene.RequestModuleInterface<IEventQueue>(); | 228 | IEventQueue eq = sp.Scene.RequestModuleInterface<IEventQueue>(); |
@@ -228,6 +232,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
228 | aCircuit.firstname, aCircuit.lastname, finalDestination.RegionName, homeGatekeeper.ExternalHostName, homeGatekeeper.HttpPort, homeGatekeeper.RegionName); | 232 | aCircuit.firstname, aCircuit.lastname, finalDestination.RegionName, homeGatekeeper.ExternalHostName, homeGatekeeper.HttpPort, homeGatekeeper.RegionName); |
229 | 233 | ||
230 | DoTeleport(sp, homeGatekeeper, finalDestination, position, lookAt, (uint)(Constants.TeleportFlags.SetLastToTarget | Constants.TeleportFlags.ViaHome), eq); | 234 | DoTeleport(sp, homeGatekeeper, finalDestination, position, lookAt, (uint)(Constants.TeleportFlags.SetLastToTarget | Constants.TeleportFlags.ViaHome), eq); |
235 | return true; | ||
231 | } | 236 | } |
232 | 237 | ||
233 | /// <summary> | 238 | /// <summary> |