diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 11 |
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; |