aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs18
1 files changed, 17 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 8eb2b1e..efd4ca6 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -71,6 +71,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
71 public event ChangeDelegate OnRegionInfoChange; 71 public event ChangeDelegate OnRegionInfoChange;
72 public event ChangeDelegate OnEstateInfoChange; 72 public event ChangeDelegate OnEstateInfoChange;
73 public event MessageDelegate OnEstateMessage; 73 public event MessageDelegate OnEstateMessage;
74 public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest;
75 public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest;
74 76
75 private int m_delayCount = 0; 77 private int m_delayCount = 0;
76 78
@@ -1193,13 +1195,20 @@ namespace OpenSim.Region.CoreModules.World.Estate
1193 1195
1194 private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID, UUID prey) 1196 private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID, UUID prey)
1195 { 1197 {
1198 EstateTeleportOneUserHomeRequest evOverride = OnEstateTeleportOneUserHomeRequest;
1199 if(evOverride != null)
1200 {
1201 evOverride(remover_client, invoice, senderID, prey);
1202 return;
1203 }
1204
1196 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) 1205 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false))
1197 return; 1206 return;
1198 1207
1199 if (prey != UUID.Zero) 1208 if (prey != UUID.Zero)
1200 { 1209 {
1201 ScenePresence s = Scene.GetScenePresence(prey); 1210 ScenePresence s = Scene.GetScenePresence(prey);
1202 if (s != null) 1211 if (s != null && !s.IsDeleted && !s.IsInTransit)
1203 { 1212 {
1204 if (!Scene.TeleportClientHome(prey, s.ControllingClient)) 1213 if (!Scene.TeleportClientHome(prey, s.ControllingClient))
1205 { 1214 {
@@ -1212,6 +1221,13 @@ namespace OpenSim.Region.CoreModules.World.Estate
1212 1221
1213 private void handleEstateTeleportAllUsersHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID) 1222 private void handleEstateTeleportAllUsersHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID)
1214 { 1223 {
1224 EstateTeleportAllUsersHomeRequest evOverride = OnEstateTeleportAllUsersHomeRequest;
1225 if(evOverride != null)
1226 {
1227 evOverride(remover_client, invoice, senderID);
1228 return;
1229 }
1230
1215 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) 1231 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false))
1216 return; 1232 return;
1217 1233