diff options
author | Charles Krinke | 2008-09-28 22:01:37 +0000 |
---|---|---|
committer | Charles Krinke | 2008-09-28 22:01:37 +0000 |
commit | 04be8726d30fe4399a89c3a739d1967412c0b548 (patch) | |
tree | a5d8b37967efa023c1859bb0e344c26be54392b9 /OpenSim/Region | |
parent | Added the plumbing for llSetVehicleRotationParam (diff) | |
download | opensim-SC_OLD-04be8726d30fe4399a89c3a739d1967412c0b548.zip opensim-SC_OLD-04be8726d30fe4399a89c3a739d1967412c0b548.tar.gz opensim-SC_OLD-04be8726d30fe4399a89c3a739d1967412c0b548.tar.bz2 opensim-SC_OLD-04be8726d30fe4399a89c3a739d1967412c0b548.tar.xz |
Mantis#296. Thank you kindly, Idb for a patch that resolves:
Estate/ Manager Owner Uses the Region/Estate Menu Region TAB,
and uses "Teleport Home All Users..." (Action Button), the
action will complete but no one will be teleported and all
users still function in the region ok.
Diffstat (limited to 'OpenSim/Region')
4 files changed, 34 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index c8923e0..72d2a76 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -965,6 +965,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
965 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; | 965 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; |
966 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; | 966 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; |
967 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; | 967 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; |
968 | public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest; | ||
968 | public event RegionHandleRequest OnRegionHandleRequest; | 969 | public event RegionHandleRequest OnRegionHandleRequest; |
969 | public event ParcelInfoRequest OnParcelInfoRequest; | 970 | public event ParcelInfoRequest OnParcelInfoRequest; |
970 | public event ScriptReset OnScriptReset; | 971 | public event ScriptReset OnScriptReset; |
@@ -5877,6 +5878,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5877 | OnEstateTeleportOneUserHomeRequest(this, invoice, SenderID, Prey); | 5878 | OnEstateTeleportOneUserHomeRequest(this, invoice, SenderID, Prey); |
5878 | } | 5879 | } |
5879 | break; | 5880 | break; |
5881 | case "teleporthomeallusers": | ||
5882 | if (((Scene)m_scene).ExternalChecks.ExternalChecksCanIssueEstateCommand(this.AgentId, false)) | ||
5883 | { | ||
5884 | UUID invoice = messagePacket.MethodData.Invoice; | ||
5885 | UUID SenderID = messagePacket.AgentData.AgentID; | ||
5886 | OnEstateTeleportAllUsersHomeRequest(this, invoice, SenderID); | ||
5887 | } | ||
5888 | break; | ||
5880 | case "colliders": | 5889 | case "colliders": |
5881 | handlerLandStatRequest = OnLandStatRequest; | 5890 | handlerLandStatRequest = OnLandStatRequest; |
5882 | if (handlerLandStatRequest != null) | 5891 | if (handlerLandStatRequest != null) |
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; |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 92a96f9..1967318 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -201,6 +201,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
201 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; | 201 | public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; |
202 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; | 202 | public event EstateDebugRegionRequest OnEstateDebugRegionRequest; |
203 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; | 203 | public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; |
204 | public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest; | ||
204 | public event ScriptReset OnScriptReset; | 205 | public event ScriptReset OnScriptReset; |
205 | public event GetScriptRunning OnGetScriptRunning; | 206 | public event GetScriptRunning OnGetScriptRunning; |
206 | public event SetScriptRunning OnSetScriptRunning; | 207 | public event SetScriptRunning OnSetScriptRunning; |