Add [EntityTransfer] AllowAvatarCrossing setting to determine whether avatars are allowed to cross regions at all.

Defaults to true.  For test purposes.
0.8-extended
Justin Clark-Casey (justincc) 2014-09-03 00:25:56 +01:00 committed by Justin Clark-Casey
parent 3f8a0a95da
commit 793dc74cf4
3 changed files with 22 additions and 1 deletions

View File

@ -224,6 +224,12 @@ namespace OpenSim.Region.Framework.Scenes
public bool m_clampPrimSize; public bool m_clampPrimSize;
public bool m_trustBinaries; public bool m_trustBinaries;
public bool m_allowScriptCrossings = true; public bool m_allowScriptCrossings = true;
/// <summary>
/// Can avatars cross from and to this region?
/// </summary>
public bool AllowAvatarCrossing { get; set; }
public bool m_useFlySlow; public bool m_useFlySlow;
public bool m_useTrashOnDelete = true; public bool m_useTrashOnDelete = true;
@ -1008,6 +1014,12 @@ namespace OpenSim.Region.Framework.Scenes
#endregion Region Config #endregion Region Config
IConfig entityTransferConfig = m_config.Configs["EntityTransfer"];
if (entityTransferConfig != null)
{
AllowAvatarCrossing = entityTransferConfig.GetBoolean("AllowAvatarCrossing", AllowAvatarCrossing);
}
#region Interest Management #region Interest Management
IConfig interestConfig = m_config.Configs["InterestManagement"]; IConfig interestConfig = m_config.Configs["InterestManagement"];
@ -1076,6 +1088,8 @@ namespace OpenSim.Region.Framework.Scenes
CollidablePrims = true; CollidablePrims = true;
PhysicsEnabled = true; PhysicsEnabled = true;
AllowAvatarCrossing = true;
PeriodicBackup = true; PeriodicBackup = true;
UseBackup = true; UseBackup = true;
@ -5576,6 +5590,9 @@ namespace OpenSim.Region.Framework.Scenes
return true; return true;
} }
if (!AllowAvatarCrossing && !viaTeleport)
return false;
// FIXME: Root agent count is currently known to be inaccurate. This forces a recount before we check. // FIXME: Root agent count is currently known to be inaccurate. This forces a recount before we check.
// However, the long term fix is to make sure root agent count is always accurate. // However, the long term fix is to make sure root agent count is always accurate.
m_sceneGraph.RecalculateStats(); m_sceneGraph.RecalculateStats();

View File

@ -3210,7 +3210,8 @@ namespace OpenSim.Region.Framework.Scenes
m_lastVelocity = Velocity; m_lastVelocity = Velocity;
} }
CheckForBorderCrossing(); if (Scene.AllowAvatarCrossing)
CheckForBorderCrossing();
CheckForSignificantMovement(); // sends update to the modules. CheckForSignificantMovement(); // sends update to the modules.
} }

View File

@ -711,6 +711,9 @@
; ;
max_distance = 65535 max_distance = 65535
; Allow avatars to cross into and out of the region.
AllowAvatarCrossing = true
; Minimum user level required for HyperGrid teleports ; Minimum user level required for HyperGrid teleports
LevelHGTeleport = 0 LevelHGTeleport = 0