diff options
author | meta7 | 2010-08-30 11:41:20 -0700 |
---|---|---|
committer | meta7 | 2010-08-30 11:41:20 -0700 |
commit | 4cf5ef3cd4c6712f74615385a03217f5d4cecb80 (patch) | |
tree | 2818bcd84b994ccd1076ed4fcf109d0db4f24dda /OpenSim/Region/CoreModules/World | |
parent | Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/ca... (diff) | |
download | opensim-SC-4cf5ef3cd4c6712f74615385a03217f5d4cecb80.zip opensim-SC-4cf5ef3cd4c6712f74615385a03217f5d4cecb80.tar.gz opensim-SC-4cf5ef3cd4c6712f74615385a03217f5d4cecb80.tar.bz2 opensim-SC-4cf5ef3cd4c6712f74615385a03217f5d4cecb80.tar.xz |
Kick the user from the region in the circumstance that the TP home failed - ONLY if it was triggered by an estate ban. This makes baby jesus cry, and should be fixed to search for alternative regions if the home region is unavailable.
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 171e0b9..8411d04 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -345,7 +345,11 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
345 | { | 345 | { |
346 | if (!s.IsChildAgent) | 346 | if (!s.IsChildAgent) |
347 | { | 347 | { |
348 | m_scene.TeleportClientHome(user, s.ControllingClient); | 348 | if (!m_scene.TeleportClientHome(user, s.ControllingClient)) |
349 | { | ||
350 | s.ControllingClient.Kick("Your access to the region was revoked and TP home failed - you have been logged out."); | ||
351 | s.ControllingClient.Close(); | ||
352 | } | ||
349 | } | 353 | } |
350 | } | 354 | } |
351 | 355 | ||
@@ -479,7 +483,11 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
479 | ScenePresence s = m_scene.GetScenePresence(prey); | 483 | ScenePresence s = m_scene.GetScenePresence(prey); |
480 | if (s != null) | 484 | if (s != null) |
481 | { | 485 | { |
482 | m_scene.TeleportClientHome(prey, s.ControllingClient); | 486 | if (!m_scene.TeleportClientHome(prey, s.ControllingClient)) |
487 | { | ||
488 | s.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); | ||
489 | s.ControllingClient.Close(); | ||
490 | } | ||
483 | } | 491 | } |
484 | } | 492 | } |
485 | } | 493 | } |
@@ -498,7 +506,11 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
498 | // Also make sure they are actually in the region | 506 | // Also make sure they are actually in the region |
499 | if (p != null && !p.IsChildAgent) | 507 | if (p != null && !p.IsChildAgent) |
500 | { | 508 | { |
501 | m_scene.TeleportClientHome(p.UUID, p.ControllingClient); | 509 | if (!m_scene.TeleportClientHome(p.UUID, p.ControllingClient)) |
510 | { | ||
511 | p.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); | ||
512 | p.ControllingClient.Close(); | ||
513 | } | ||
502 | } | 514 | } |
503 | } | 515 | } |
504 | }); | 516 | }); |