aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs9
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs11
2 files changed, 17 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index de3978c..9b17b7f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -5506,8 +5506,13 @@ namespace OpenSim.Region.Framework.Scenes
5506 5506
5507 if (banned) 5507 if (banned)
5508 { 5508 {
5509 reason = "No suitable landing point found"; 5509 if(Permissions.IsAdministrator(agentID) == false || Permissions.IsGridGod(agentID) == false)
5510 return false; 5510 {
5511 reason = "No suitable landing point found";
5512 return false;
5513 }
5514 reason = "Administrative access only";
5515 return true;
5511 } 5516 }
5512 } 5517 }
5513 } 5518 }
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6e41774..30bd715 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -4021,6 +4021,7 @@ namespace OpenSim.Region.Framework.Scenes
4021 (m_teleportFlags & TeleportFlags.ViaLocation) != 0 || 4021 (m_teleportFlags & TeleportFlags.ViaLocation) != 0 ||
4022 (m_teleportFlags & Constants.TeleportFlags.ViaHGLogin) != 0) 4022 (m_teleportFlags & Constants.TeleportFlags.ViaHGLogin) != 0)
4023 { 4023 {
4024
4024 if (GodLevel < 200 && 4025 if (GodLevel < 200 &&
4025 ((!m_scene.Permissions.IsGod(m_uuid) && 4026 ((!m_scene.Permissions.IsGod(m_uuid) &&
4026 !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) || 4027 !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) ||
@@ -4029,7 +4030,14 @@ namespace OpenSim.Region.Framework.Scenes
4029 { 4030 {
4030 SpawnPoint[] spawnPoints = m_scene.RegionInfo.RegionSettings.SpawnPoints().ToArray(); 4031 SpawnPoint[] spawnPoints = m_scene.RegionInfo.RegionSettings.SpawnPoints().ToArray();
4031 if (spawnPoints.Length == 0) 4032 if (spawnPoints.Length == 0)
4033 {
4034 if(m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid))
4035 {
4036 pos.X = 128.0f;
4037 pos.Y = 128.0f;
4038 }
4032 return; 4039 return;
4040 }
4033 4041
4034 int index; 4042 int index;
4035 bool selected = false; 4043 bool selected = false;
@@ -4049,7 +4057,8 @@ namespace OpenSim.Region.Framework.Scenes
4049 // SpawnPoint sp = spawnPoints[index]; 4057 // SpawnPoint sp = spawnPoints[index];
4050 4058
4051 ILandObject land = m_scene.LandChannel.GetLandObject(spawnPosition.X, spawnPosition.Y); 4059 ILandObject land = m_scene.LandChannel.GetLandObject(spawnPosition.X, spawnPosition.Y);
4052 if (land == null || land.IsEitherBannedOrRestricted(UUID)) 4060 if (spawnPoints.Length == 0)
4061 return; if (land == null || land.IsEitherBannedOrRestricted(UUID))
4053 selected = false; 4062 selected = false;
4054 else 4063 else
4055 selected = true; 4064 selected = true;