aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorCharles Krinke2008-09-28 22:01:37 +0000
committerCharles Krinke2008-09-28 22:01:37 +0000
commit04be8726d30fe4399a89c3a739d1967412c0b548 (patch)
treea5d8b37967efa023c1859bb0e344c26be54392b9 /OpenSim/Region
parentAdded the plumbing for llSetVehicleRotationParam (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs9
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs23
-rw-r--r--OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs1
-rw-r--r--OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs1
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;