aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-01-26 10:32:22 +0000
committerMelanie2012-01-26 10:32:22 +0000
commit7229f6e64b9205942e3e6dda4e34dbe203ba2954 (patch)
treea5a88a4f839ce89f8fba5bc69d3e68a7ecf04f5c /OpenSim
parentMerge branch 'master' into careminster (diff)
parentSupport rejecting a teleport if a user is banned in all parcels that have (diff)
downloadopensim-SC-7229f6e64b9205942e3e6dda4e34dbe203ba2954.zip
opensim-SC-7229f6e64b9205942e3e6dda4e34dbe203ba2954.tar.gz
opensim-SC-7229f6e64b9205942e3e6dda4e34dbe203ba2954.tar.bz2
opensim-SC-7229f6e64b9205942e3e6dda4e34dbe203ba2954.tar.xz
Merge branch 'master' into careminster
Conflicts: OpenSim/Region/Framework/Scenes/Scene.cs
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0ebdbb7..4daabd2 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -5379,6 +5379,33 @@ Environment.Exit(1);
5379 5379
5380 if (position == Vector3.Zero) // Teleport 5380 if (position == Vector3.Zero) // Teleport
5381 { 5381 {
5382 if (!RegionInfo.EstateSettings.AllowDirectTeleport)
5383 {
5384 SceneObjectGroup telehub;
5385 if (RegionInfo.RegionSettings.TelehubObject != UUID.Zero && (telehub = GetSceneObjectGroup(RegionInfo.RegionSettings.TelehubObject)) != null)
5386 {
5387 List<SpawnPoint> spawnPoints = RegionInfo.RegionSettings.SpawnPoints();
5388 bool banned = true;
5389 foreach (SpawnPoint sp in spawnPoints)
5390 {
5391 Vector3 spawnPoint = sp.GetLocation(telehub.AbsolutePosition, telehub.GroupRotation);
5392 ILandObject land = LandChannel.GetLandObject(spawnPoint.X, spawnPoint.Y);
5393 if (land == null)
5394 continue;
5395 if (land.IsEitherBannedOrRestricted(agentID))
5396 continue;
5397 banned = false;
5398 break;
5399 }
5400
5401 if (banned)
5402 {
5403 reason = "No suitable landing point found";
5404 return false;
5405 }
5406 }
5407 }
5408
5382 float posX = 128.0f; 5409 float posX = 128.0f;
5383 float posY = 128.0f; 5410 float posY = 128.0f;
5384 5411