diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | 23 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs index 3dddc2b..616132b 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | |||
@@ -383,6 +383,28 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
383 | } | 383 | } |
384 | } | 384 | } |
385 | 385 | ||
386 | private void handleEstateTeleportAllUsersHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID) | ||
387 | { | ||
388 | // Get a fresh list that will not change as people get teleported away | ||
389 | List<ScenePresence> prescences = m_scene.GetScenePresences(); | ||
390 | foreach (ScenePresence p in prescences) | ||
391 | { | ||
392 | if (p.UUID != senderID) | ||
393 | { | ||
394 | // make sure they are still there, we could be working down a long list | ||
395 | ScenePresence s = m_scene.GetScenePresence(p.UUID); | ||
396 | if (s != null) | ||
397 | { | ||
398 | // Also make sure they are actually in the region | ||
399 | if (!s.IsChildAgent) | ||
400 | { | ||
401 | m_scene.TeleportClientHome(s.UUID, s.ControllingClient); | ||
402 | } | ||
403 | } | ||
404 | } | ||
405 | } | ||
406 | } | ||
407 | |||
386 | private void HandleRegionInfoRequest(IClientAPI remote_client) | 408 | private void HandleRegionInfoRequest(IClientAPI remote_client) |
387 | { | 409 | { |
388 | 410 | ||
@@ -723,6 +745,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
723 | client.OnEstateBlueBoxMessageRequest += SendEstateBlueBoxMessage; | 745 | client.OnEstateBlueBoxMessageRequest += SendEstateBlueBoxMessage; |
724 | client.OnEstateDebugRegionRequest += handleEstateDebugRegionRequest; | 746 | client.OnEstateDebugRegionRequest += handleEstateDebugRegionRequest; |
725 | client.OnEstateTeleportOneUserHomeRequest += handleEstateTeleportOneUserHomeRequest; | 747 | client.OnEstateTeleportOneUserHomeRequest += handleEstateTeleportOneUserHomeRequest; |
748 | client.OnEstateTeleportAllUsersHomeRequest += handleEstateTeleportAllUsersHomeRequest; | ||
726 | 749 | ||
727 | client.OnRegionInfoRequest += HandleRegionInfoRequest; | 750 | client.OnRegionInfoRequest += HandleRegionInfoRequest; |
728 | client.OnEstateCovenantRequest += HandleEstateCovenantRequest; | 751 | client.OnEstateCovenantRequest += HandleEstateCovenantRequest; |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 8c76884..9476571 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -305,6 +305,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
305 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; | 305 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; |
306 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; | 306 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; |
307 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; | 307 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; |
308 | public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest; | ||
308 | public event EstateChangeInfo OnEstateChangeInfo; | 309 | public event EstateChangeInfo OnEstateChangeInfo; |
309 | public event ScriptReset OnScriptReset; | 310 | public event ScriptReset OnScriptReset; |
310 | public event GetScriptRunning OnGetScriptRunning; | 311 | public event GetScriptRunning OnGetScriptRunning; |