aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorCharles Krinke2008-09-28 22:01:37 +0000
committerCharles Krinke2008-09-28 22:01:37 +0000
commit04be8726d30fe4399a89c3a739d1967412c0b548 (patch)
treea5d8b37967efa023c1859bb0e344c26be54392b9
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.
-rw-r--r--OpenSim/Framework/IClientAPI.cs2
-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
5 files changed, 36 insertions, 0 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 9df1e00..1c38011 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -298,6 +298,7 @@ namespace OpenSim.Framework
298 public delegate void EstateBlueBoxMessageRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message); 298 public delegate void EstateBlueBoxMessageRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message);
299 public delegate void EstateDebugRegionRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, bool scripted, bool collisionEvents, bool physics); 299 public delegate void EstateDebugRegionRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, bool scripted, bool collisionEvents, bool physics);
300 public delegate void EstateTeleportOneUserHomeRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, UUID prey); 300 public delegate void EstateTeleportOneUserHomeRequest(IClientAPI remoteClient, UUID invoice, UUID senderID, UUID prey);
301 public delegate void EstateTeleportAllUsersHomeRequest(IClientAPI remoteClient, UUID invoice, UUID senderID);
301 public delegate void RegionHandleRequest(IClientAPI remoteClient, UUID regionID); 302 public delegate void RegionHandleRequest(IClientAPI remoteClient, UUID regionID);
302 public delegate void ParcelInfoRequest(IClientAPI remoteClient, UUID parcelID); 303 public delegate void ParcelInfoRequest(IClientAPI remoteClient, UUID parcelID);
303 304
@@ -518,6 +519,7 @@ namespace OpenSim.Framework
518 event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; 519 event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest;
519 event EstateDebugRegionRequest OnEstateDebugRegionRequest; 520 event EstateDebugRegionRequest OnEstateDebugRegionRequest;
520 event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; 521 event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest;
522 event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest;
521 event UUIDNameRequest OnUUIDGroupNameRequest; 523 event UUIDNameRequest OnUUIDGroupNameRequest;
522 524
523 event RegionHandleRequest OnRegionHandleRequest; 525 event RegionHandleRequest OnRegionHandleRequest;
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;