Merge branch 'master' into httptests

httptests
UbitUmarov 2017-01-07 21:05:12 +00:00
commit 694720d7a9
20 changed files with 116 additions and 115 deletions

View File

@ -56,7 +56,7 @@ namespace OpenSim.Framework
bool IsChildAgent { get; } bool IsChildAgent { get; }
bool IsInTransit { get; } bool IsInTransit { get; }
bool isNPC { get;} bool IsNPC { get;}
bool Invulnerable { get; set; } bool Invulnerable { get; set; }
/// <summary> /// <summary>
@ -83,4 +83,4 @@ namespace OpenSim.Framework
/// <remarks>Will be Vector3.Zero for a child agent.</remarks> /// <remarks>Will be Vector3.Zero for a child agent.</remarks>
Vector3 Lookat { get; } Vector3 Lookat { get; }
} }
} }

View File

@ -11455,7 +11455,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ScenePresence p; ScenePresence p;
if (scene.TryGetScenePresence(sender.AgentId, out p)) if (scene.TryGetScenePresence(sender.AgentId, out p))
{ {
if (p.GodController.GodLevel >= 200) if (p.IsViewerUIGod)
{ {
groupProfileReply.GroupData.OpenEnrollment = true; groupProfileReply.GroupData.OpenEnrollment = true;
groupProfileReply.GroupData.MembershipFee = 0; groupProfileReply.GroupData.MembershipFee = 0;

View File

@ -364,7 +364,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
return false; return false;
// npcs dont have baked cache // npcs dont have baked cache
if (((ScenePresence)sp).isNPC) if (((ScenePresence)sp).IsNPC)
return true; return true;
// uploaded baked textures will be in assets local cache // uploaded baked textures will be in assets local cache
@ -507,7 +507,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
{ {
int hits = 0; int hits = 0;
if (((ScenePresence)sp).isNPC) if (((ScenePresence)sp).IsNPC)
return true; return true;
lock (m_setAppearanceLock) lock (m_setAppearanceLock)
@ -701,7 +701,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
public int RequestRebake(IScenePresence sp, bool missingTexturesOnly) public int RequestRebake(IScenePresence sp, bool missingTexturesOnly)
{ {
if (((ScenePresence)sp).isNPC) if (((ScenePresence)sp).IsNPC)
return 0; return 0;
int texturesRebaked = 0; int texturesRebaked = 0;

View File

@ -229,7 +229,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
fromPos = avatar.AbsolutePosition; fromPos = avatar.AbsolutePosition;
fromName = avatar.Name; fromName = avatar.Name;
fromID = c.Sender.AgentId; fromID = c.Sender.AgentId;
if (avatar.GodController.GodLevel >= 200) if (avatar.IsViewerUIGod)
{ // let gods speak to outside or things may get confusing { // let gods speak to outside or things may get confusing
fromNamePrefix = m_adminPrefix; fromNamePrefix = m_adminPrefix;
checkParcelHide = false; checkParcelHide = false;
@ -305,7 +305,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
{ {
if (checkParcelHide) if (checkParcelHide)
{ {
if (sourceParcelID != Presencecheck.LandData.GlobalID && presence.GodController.GodLevel < 200) if (sourceParcelID != Presencecheck.LandData.GlobalID && !presence.IsViewerUIGod)
return; return;
} }
if (c.Sender == null || Presencecheck.IsEitherBannedOrRestricted(c.Sender.AgentId) != true) if (c.Sender == null || Presencecheck.IsEitherBannedOrRestricted(c.Sender.AgentId) != true)

View File

@ -118,7 +118,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
// If we're in god mode, we reverse the meaning. Offer // If we're in god mode, we reverse the meaning. Offer
// calling card becomes "Take a calling card" for that // calling card becomes "Take a calling card" for that
// person, no matter if they agree or not. // person, no matter if they agree or not.
if (sp.GodController.GodLevel >= 200) if (sp.IsViewerUIGod)
{ {
CreateCallingCard(client.AgentId, destID, UUID.Zero, true); CreateCallingCard(client.AgentId, destID, UUID.Zero, true);
return; return;

View File

@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
UUID agentID, UUID sessionID, UUID token, bool godLike) UUID agentID, UUID sessionID, UUID token, bool godLike)
{ {
ScenePresence sp = m_scene.GetScenePresence(agentID); ScenePresence sp = m_scene.GetScenePresence(agentID);
if(sp == null || sp.IsDeleted || sp.isNPC) if(sp == null || sp.IsDeleted || sp.IsNPC)
return; return;
if (sessionID != sp.ControllingClient.SessionId) if (sessionID != sp.ControllingClient.SessionId)
@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
sp.GrantGodlikePowers(token, godLike); sp.GrantGodlikePowers(token, godLike);
if (godLike && sp.GodController.GodLevel < 200 && DialogModule != null) if (godLike && !sp.IsViewerUIGod && DialogModule != null)
DialogModule.SendAlertToUser(agentID, "Request for god powers denied"); DialogModule.SendAlertToUser(agentID, "Request for god powers denied");
} }
@ -194,14 +194,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
int godlevel = 200; int godlevel = 200;
// update level so higher gods can kick lower ones // update level so higher gods can kick lower ones
ScenePresence god = m_scene.GetScenePresence(godID); ScenePresence god = m_scene.GetScenePresence(godID);
if(god != null && god.GodController.EffectiveLevel > godlevel) if(god != null && god.GodController.GodLevel > godlevel)
godlevel = god.GodController.EffectiveLevel; godlevel = god.GodController.GodLevel;
if(agentID == ALL_AGENTS) if(agentID == ALL_AGENTS)
{ {
m_scene.ForEachRootScenePresence(delegate(ScenePresence p) m_scene.ForEachRootScenePresence(delegate(ScenePresence p)
{ {
if (p.UUID != godID && godlevel > p.GodController.EffectiveLevel) if (p.UUID != godID && godlevel > p.GodController.GodLevel)
doKickmodes(godID, p, kickflags, reason); doKickmodes(godID, p, kickflags, reason);
}); });
return; return;
@ -224,7 +224,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
return; return;
} }
if (godlevel <= sp.GodController.EffectiveLevel) // no god wars if (godlevel <= sp.GodController.GodLevel) // no god wars
return; return;
if(sp.UUID == godID) if(sp.UUID == godID)

View File

@ -169,7 +169,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Lure
GridInstantMessage m; GridInstantMessage m;
if (scene.Permissions.IsAdministrator(client.AgentId) && presence.GodController.GodLevel >= 200 && (!scene.Permissions.IsAdministrator(targetid))) if (scene.Permissions.IsAdministrator(client.AgentId) && presence.IsViewerUIGod && (!scene.Permissions.IsAdministrator(targetid)))
{ {
m = new GridInstantMessage(scene, client.AgentId, m = new GridInstantMessage(scene, client.AgentId,
client.FirstName+" "+client.LastName, targetid, client.FirstName+" "+client.LastName, targetid,

View File

@ -356,7 +356,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
return; return;
ScenePresence p = FindPresence(targetID); ScenePresence p = FindPresence(targetID);
if (p != null && p.isNPC) if (p != null && p.IsNPC)
{ {
remoteClient.SendAvatarClassifiedReply(targetID, classifieds); remoteClient.SendAvatarClassifiedReply(targetID, classifieds);
return; return;
@ -751,7 +751,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
Dictionary<UUID, string> picks = new Dictionary<UUID, string>(); Dictionary<UUID, string> picks = new Dictionary<UUID, string>();
ScenePresence p = FindPresence(targetId); ScenePresence p = FindPresence(targetId);
if (p != null && p.isNPC) if (p != null && p.IsNPC)
{ {
remoteClient.SendAvatarPicksReply(targetId, picks); remoteClient.SendAvatarPicksReply(targetId, picks);
return; return;
@ -1165,7 +1165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
public void NotesUpdate(IClientAPI remoteClient, UUID queryTargetID, string queryNotes) public void NotesUpdate(IClientAPI remoteClient, UUID queryTargetID, string queryNotes)
{ {
ScenePresence p = FindPresence(queryTargetID); ScenePresence p = FindPresence(queryTargetID);
if (p != null && p.isNPC) if (p != null && p.IsNPC)
{ {
remoteClient.SendAgentAlertMessage( remoteClient.SendAgentAlertMessage(
"Notes for NPCs not available", false); "Notes for NPCs not available", false);
@ -1329,7 +1329,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
} }
ScenePresence p = FindPresence(avatarID); ScenePresence p = FindPresence(avatarID);
if (p != null && p.isNPC) if (p != null && p.IsNPC)
{ {
remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born, remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born,
Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 0x10, Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 0x10,

View File

@ -65,7 +65,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
public void OnMakeRootAgent(ScenePresence sp) public void OnMakeRootAgent(ScenePresence sp)
{ {
if (sp.isNPC) if (sp.IsNPC)
return; return;
if(sp.gotCrossUpdate) if(sp.gotCrossUpdate)

View File

@ -68,7 +68,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
public void OnMakeRootAgent(ScenePresence sp) public void OnMakeRootAgent(ScenePresence sp)
{ {
if (sp.isNPC) if (sp.IsNPC)
return; return;
if(sp.gotCrossUpdate) if(sp.gotCrossUpdate)

View File

@ -1285,7 +1285,7 @@ namespace OpenSim.Region.CoreModules.World.Land
UUID parcelID = land.LandData.GlobalID; UUID parcelID = land.LandData.GlobalID;
m_scene.ForEachScenePresence(delegate(ScenePresence avatar) m_scene.ForEachScenePresence(delegate(ScenePresence avatar)
{ {
if (avatar.IsDeleted || avatar.isNPC) if (avatar.IsDeleted || avatar.IsNPC)
return; return;
IClientAPI client = avatar.ControllingClient; IClientAPI client = avatar.ControllingClient;

View File

@ -718,7 +718,7 @@ namespace OpenSim.Region.CoreModules.World.Land
if (!m_scene.TryGetScenePresence(avatar, out sp)) if (!m_scene.TryGetScenePresence(avatar, out sp))
return true; return true;
if(sp==null || !sp.isNPC) if(sp==null || !sp.IsNPC)
return true; return true;
INPC npccli = (INPC)sp.ControllingClient; INPC npccli = (INPC)sp.ControllingClient;

View File

@ -66,9 +66,9 @@ namespace OpenSim.Region.Framework.Scenes
// the god level from local or grid user rights // the god level from local or grid user rights
protected int m_rightsGodLevel = 0; protected int m_rightsGodLevel = 0;
// the level seen by viewers // the level seen by viewers
protected int m_godlevel = 0; protected int m_viewergodlevel = 0;
// new level that can be fixed or equal to godlevel, acording to options // new level that can be fixed or equal to godlevel, acording to options
protected int m_effectivegodlevel = 0; protected int m_godlevel = 0;
protected int m_lastLevelToViewer = 0; protected int m_lastLevelToViewer = 0;
public GodController(Scene scene, ScenePresence sp, int userlevel) public GodController(Scene scene, ScenePresence sp, int userlevel)
@ -127,19 +127,18 @@ namespace OpenSim.Region.Framework.Scenes
if(m_allowGodActionsWithoutGodMode) if(m_allowGodActionsWithoutGodMode)
{ {
m_effectivegodlevel = m_rightsGodLevel; m_godlevel = m_rightsGodLevel;
m_forceGodModeAlwaysOn = false; m_forceGodModeAlwaysOn = false;
} }
else if(m_forceGodModeAlwaysOn) else if(m_forceGodModeAlwaysOn)
{ {
m_viewergodlevel = m_rightsGodLevel;
m_godlevel = m_rightsGodLevel; m_godlevel = m_rightsGodLevel;
m_effectivegodlevel = m_rightsGodLevel;
} }
m_scenePresence.isGod = (m_effectivegodlevel >= 200); m_scenePresence.IsGod = (m_godlevel >= 200);
m_scenePresence.isLegacyGod = (m_godlevel >= 200); m_scenePresence.IsViewerUIGod = (m_viewergodlevel >= 200);
} }
// calculates god level at sp creation from local and grid user god rights // calculates god level at sp creation from local and grid user god rights
@ -175,10 +174,10 @@ namespace OpenSim.Region.Framework.Scenes
{ {
if(!CanBeGod()) if(!CanBeGod())
{ {
m_viewergodlevel = 0;
m_godlevel = 0; m_godlevel = 0;
m_effectivegodlevel = 0; m_scenePresence.IsGod = false;
m_scenePresence.isGod = false; m_scenePresence.IsViewerUIGod = false;
m_scenePresence.isLegacyGod = false;
return; return;
} }
@ -186,58 +185,58 @@ namespace OpenSim.Region.Framework.Scenes
if(m_allowGodActionsWithoutGodMode) if(m_allowGodActionsWithoutGodMode)
{ {
if(viewerState) if(viewerState)
m_godlevel = m_rightsGodLevel; m_viewergodlevel = m_rightsGodLevel;
else else
m_godlevel = 0; m_viewergodlevel = 0;
m_effectivegodlevel = m_rightsGodLevel; m_godlevel = m_rightsGodLevel;
} }
else else
{ {
// new all change with viewer // new all change with viewer
if(viewerState) if(viewerState)
{ {
m_viewergodlevel = m_rightsGodLevel;
m_godlevel = m_rightsGodLevel; m_godlevel = m_rightsGodLevel;
m_effectivegodlevel = m_rightsGodLevel;
} }
else else
{ {
m_viewergodlevel = 0;
m_godlevel = 0; m_godlevel = 0;
m_effectivegodlevel = 0;
} }
} }
m_scenePresence.isGod = (m_effectivegodlevel >= 200); m_scenePresence.IsGod = (m_godlevel >= 200);
m_scenePresence.isLegacyGod = (m_godlevel >= 200); m_scenePresence.IsViewerUIGod = (m_viewergodlevel >= 200);
} }
public void SyncViewerState() public void SyncViewerState()
{ {
if(m_lastLevelToViewer == m_godlevel) if(m_lastLevelToViewer == m_viewergodlevel)
return; return;
m_lastLevelToViewer = m_godlevel; m_lastLevelToViewer = m_viewergodlevel;
if(m_scenePresence.IsChildAgent) if(m_scenePresence.IsChildAgent)
return; return;
m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_godlevel); m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_viewergodlevel);
} }
public void RequestGodMode(bool god) public void RequestGodMode(bool god)
{ {
UpdateGodLevels(god); UpdateGodLevels(god);
if(m_lastLevelToViewer != m_godlevel) if(m_lastLevelToViewer != m_viewergodlevel)
{ {
m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_godlevel); m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_viewergodlevel);
m_lastLevelToViewer = m_godlevel; m_lastLevelToViewer = m_viewergodlevel;
} }
} }
public OSD State() public OSD State()
{ {
OSDMap godMap = new OSDMap(2); OSDMap godMap = new OSDMap(2);
bool m_viewerUiIsGod = m_godlevel >= 200; bool m_viewerUiIsGod = m_viewergodlevel >= 200;
godMap.Add("ViewerUiIsGod", OSD.FromBoolean(m_viewerUiIsGod)); godMap.Add("ViewerUiIsGod", OSD.FromBoolean(m_viewerUiIsGod));
return godMap; return godMap;
@ -256,7 +255,7 @@ namespace OpenSim.Region.Framework.Scenes
if (s.ContainsKey("ViewerUiIsGod")) if (s.ContainsKey("ViewerUiIsGod"))
newstate = s["ViewerUiIsGod"].AsBoolean(); newstate = s["ViewerUiIsGod"].AsBoolean();
m_lastLevelToViewer = m_godlevel; // we are not changing viewer level by default m_lastLevelToViewer = m_viewergodlevel; // we are not changing viewer level by default
} }
} }
UpdateGodLevels(newstate); UpdateGodLevels(newstate);
@ -273,14 +272,14 @@ namespace OpenSim.Region.Framework.Scenes
set { m_userLevel = value; } set { m_userLevel = value; }
} }
public int ViwerUIGodLevel
{
get { return m_viewergodlevel; }
}
public int GodLevel public int GodLevel
{ {
get { return m_godlevel; } get { return m_godlevel; }
} }
public int EffectiveLevel
{
get { return m_effectivegodlevel; }
}
} }
} }

View File

@ -3951,7 +3951,7 @@ namespace OpenSim.Region.Framework.Scenes
bool vialogin = ((teleportFlags & (uint)TPFlags.ViaLogin) != 0 || bool vialogin = ((teleportFlags & (uint)TPFlags.ViaLogin) != 0 ||
(teleportFlags & (uint)TPFlags.ViaHGLogin) != 0); (teleportFlags & (uint)TPFlags.ViaHGLogin) != 0);
bool viahome = ((teleportFlags & (uint)TPFlags.ViaHome) != 0); bool viahome = ((teleportFlags & (uint)TPFlags.ViaHome) != 0);
bool godlike = ((teleportFlags & (uint)TPFlags.Godlike) != 0); // bool godlike = ((teleportFlags & (uint)TPFlags.Godlike) != 0);
reason = String.Empty; reason = String.Empty;
@ -4251,7 +4251,8 @@ namespace OpenSim.Region.Framework.Scenes
} }
// only check access, actual relocations will happen later on ScenePresence MakeRoot // only check access, actual relocations will happen later on ScenePresence MakeRoot
// allow child agents creation // allow child agents creation
if(!godlike && teleportFlags != (uint) TPFlags.Default) // if(!godlike && teleportFlags != (uint) TPFlags.Default)
if(teleportFlags != (uint) TPFlags.Default)
{ {
bool checkTeleHub; bool checkTeleHub;
@ -6188,9 +6189,10 @@ Environment.Exit(1);
if (Permissions.IsGod(agentID)) if (Permissions.IsGod(agentID))
return true; return true;
bool isAdmin = Permissions.IsAdministrator(agentID); // Permissions.IsAdministrator is the same as IsGod for now
if(isAdmin) // bool isAdmin = Permissions.IsAdministrator(agentID);
return true; // if(isAdmin)
// return true;
// also honor estate managers access rights // also honor estate managers access rights
bool isManager = Permissions.IsEstateManager(agentID); bool isManager = Permissions.IsEstateManager(agentID);

View File

@ -2302,7 +2302,7 @@ namespace OpenSim.Region.Framework.Scenes
List<ScenePresence> sitters = GetSittingAvatars(); List<ScenePresence> sitters = GetSittingAvatars();
foreach(ScenePresence sp in sitters) foreach(ScenePresence sp in sitters)
{ {
if(!sp.IsDeleted && !sp.isNPC && sp.IsSatOnObject) if(!sp.IsDeleted && !sp.IsNPC && sp.IsSatOnObject)
return; return;
} }
} }

View File

@ -2723,7 +2723,7 @@ namespace OpenSim.Region.Framework.Scenes
detobj.posVector = av.AbsolutePosition; detobj.posVector = av.AbsolutePosition;
detobj.rotQuat = av.Rotation; detobj.rotQuat = av.Rotation;
detobj.velVector = av.Velocity; detobj.velVector = av.Velocity;
detobj.colliderType = av.isNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
if(av.IsSatOnObject) if(av.IsSatOnObject)
detobj.colliderType |= 0x4; //passive detobj.colliderType |= 0x4; //passive
else if(detobj.velVector != Vector3.Zero) else if(detobj.velVector != Vector3.Zero)

View File

@ -90,15 +90,15 @@ namespace OpenSim.Region.Framework.Scenes
m_scene.EventManager.TriggerScenePresenceUpdated(this); m_scene.EventManager.TriggerScenePresenceUpdated(this);
} }
public bool isNPC { get; private set; } public bool IsNPC { get; private set; }
// simple yes or no isGOD from god level >= 200 // simple yes or no isGOD from god level >= 200
// should only be set by GodController // should only be set by GodController
// we have two to suport legacy behaviour // we have two to suport legacy behaviour
// isLegacyGod was controlled by viewer in older versions // IsViewerUIGod was controlled by viewer in older versions
// isGod may now be also controled by viewer acording to options // IsGod may now be also controled by viewer acording to options
public bool isLegacyGod { get; set; } public bool IsViewerUIGod { get; set; }
public bool isGod { get; set; } public bool IsGod { get; set; }
private PresenceType m_presenceType; private PresenceType m_presenceType;
public PresenceType PresenceType { public PresenceType PresenceType {
@ -106,7 +106,7 @@ namespace OpenSim.Region.Framework.Scenes
private set private set
{ {
m_presenceType = value; m_presenceType = value;
isNPC = (m_presenceType == PresenceType.Npc); IsNPC = (m_presenceType == PresenceType.Npc);
} }
} }
@ -1264,7 +1264,7 @@ namespace OpenSim.Region.Framework.Scenes
IsLoggingIn = false; IsLoggingIn = false;
} }
IsChildAgent = false; IsChildAgent = false;
} }
m_log.DebugFormat("[MakeRootAgent] out lock: {0}ms", Util.EnvironmentTickCountSubtract(ts)); m_log.DebugFormat("[MakeRootAgent] out lock: {0}ms", Util.EnvironmentTickCountSubtract(ts));
@ -1974,7 +1974,7 @@ namespace OpenSim.Region.Framework.Scenes
try try
{ {
// Make sure it's not a login agent. We don't want to wait for updates during login // Make sure it's not a login agent. We don't want to wait for updates during login
if (!isNPC && !IsRealLogin(m_teleportFlags)) if (!IsNPC && !IsRealLogin(m_teleportFlags))
{ {
// Let's wait until UpdateAgent (called by departing region) is done // Let's wait until UpdateAgent (called by departing region) is done
@ -2012,7 +2012,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.DebugFormat("[CompleteMovement] MakeRootAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts)); m_log.DebugFormat("[CompleteMovement] MakeRootAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts));
if(!haveGroupInformation && !IsChildAgent && !isNPC) if(!haveGroupInformation && !IsChildAgent && !IsNPC)
{ {
IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>(); IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
if (gm != null) if (gm != null)
@ -2086,7 +2086,7 @@ namespace OpenSim.Region.Framework.Scenes
m_currentParcelHide = false; m_currentParcelHide = false;
m_currentParcelUUID = UUID.Zero; m_currentParcelUUID = UUID.Zero;
if(!isNPC) if(!IsNPC)
{ {
GodController.SyncViewerState(); GodController.SyncViewerState();
@ -2104,7 +2104,7 @@ namespace OpenSim.Region.Framework.Scenes
// verify baked textures and cache // verify baked textures and cache
bool cachedbaked = false; bool cachedbaked = false;
if (isNPC) if (IsNPC)
cachedbaked = true; cachedbaked = true;
else else
{ {
@ -2156,7 +2156,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p == this) if (p == this)
continue; continue;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
SendAppearanceToAgentNF(p); SendAppearanceToAgentNF(p);
@ -2168,14 +2168,14 @@ namespace OpenSim.Region.Framework.Scenes
m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts)); m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts));
// attachments // attachments
if (isNPC || IsRealLogin(m_teleportFlags)) if (IsNPC || IsRealLogin(m_teleportFlags))
{ {
if (Scene.AttachmentsModule != null) if (Scene.AttachmentsModule != null)
// Util.FireAndForget( // Util.FireAndForget(
// o => // o =>
// { // {
if (!isNPC) if (!IsNPC)
Scene.AttachmentsModule.RezAttachments(this); Scene.AttachmentsModule.RezAttachments(this);
else else
Util.FireAndForget(x => Util.FireAndForget(x =>
@ -2206,7 +2206,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
} }
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
SendAttachmentsToAgentNF(p); SendAttachmentsToAgentNF(p);
@ -2226,7 +2226,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
// let updates be sent, with some delay // let updates be sent, with some delay
m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000; m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000;
m_lastChildAgentUpdateGodLevel = GodController.GodLevel; m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel;
m_lastChildAgentUpdateDrawDistance = DrawDistance; m_lastChildAgentUpdateDrawDistance = DrawDistance;
m_lastChildAgentUpdatePosition = AbsolutePosition; m_lastChildAgentUpdatePosition = AbsolutePosition;
m_childUpdatesBusy = false; // allow them m_childUpdatesBusy = false; // allow them
@ -2235,7 +2235,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.DebugFormat("[CompleteMovement] openChildAgents: {0}ms", Util.EnvironmentTickCountSubtract(ts)); m_log.DebugFormat("[CompleteMovement] openChildAgents: {0}ms", Util.EnvironmentTickCountSubtract(ts));
// send the rest of the world // send the rest of the world
if (m_teleportFlags > 0 && !isNPC || m_currentParcelHide) if (m_teleportFlags > 0 && !IsNPC || m_currentParcelHide)
SendInitialDataToMe(); SendInitialDataToMe();
// priority uses avatar position only // priority uses avatar position only
@ -3811,7 +3811,7 @@ namespace OpenSim.Region.Framework.Scenes
if (!remoteClient.IsActive) if (!remoteClient.IsActive)
return; return;
if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && !p.IsViewerUIGod)
return; return;
//m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity); //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity);
@ -3921,7 +3921,7 @@ namespace OpenSim.Region.Framework.Scenes
// get the avatar, then a kill if can't see it // get the avatar, then a kill if can't see it
p.SendInitialAvatarDataToAgent(this); p.SendInitialAvatarDataToAgent(this);
if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !isLegacyGod) if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !IsViewerUIGod)
return; return;
p.SendAppearanceToAgentNF(this); p.SendAppearanceToAgentNF(this);
@ -3969,7 +3969,7 @@ namespace OpenSim.Region.Framework.Scenes
foreach (ScenePresence p in presences) foreach (ScenePresence p in presences)
{ {
p.ControllingClient.SendAvatarDataImmediate(this); p.ControllingClient.SendAvatarDataImmediate(this);
if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
// either just kill the object // either just kill the object
// p.ControllingClient.SendKillObject(new List<uint> {LocalId}); // p.ControllingClient.SendKillObject(new List<uint> {LocalId});
// or also attachments viewer may still know about // or also attachments viewer may still know about
@ -3982,7 +3982,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SendInitialAvatarDataToAgent(ScenePresence p) public void SendInitialAvatarDataToAgent(ScenePresence p)
{ {
p.ControllingClient.SendAvatarDataImmediate(this); p.ControllingClient.SendAvatarDataImmediate(this);
if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
// either just kill the object // either just kill the object
// p.ControllingClient.SendKillObject(new List<uint> {LocalId}); // p.ControllingClient.SendKillObject(new List<uint> {LocalId});
// or also attachments viewer may still know about // or also attachments viewer may still know about
@ -3996,7 +3996,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SendAvatarDataToAgent(ScenePresence avatar) public void SendAvatarDataToAgent(ScenePresence avatar)
{ {
//m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID);
if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.IsViewerUIGod)
return; return;
avatar.ControllingClient.SendAvatarDataImmediate(this); avatar.ControllingClient.SendAvatarDataImmediate(this);
} }
@ -4041,7 +4041,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.IsViewerUIGod)
return; return;
SendAppearanceToAgentNF(avatar); SendAppearanceToAgentNF(avatar);
} }
@ -4057,7 +4057,7 @@ namespace OpenSim.Region.Framework.Scenes
if (IsChildAgent || Animator == null) if (IsChildAgent || Animator == null)
return; return;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
return; return;
Animator.SendAnimPackToClient(p.ControllingClient); Animator.SendAnimPackToClient(p.ControllingClient);
@ -4068,7 +4068,7 @@ namespace OpenSim.Region.Framework.Scenes
if (IsChildAgent) if (IsChildAgent)
return; return;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
return; return;
p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs);
@ -4093,7 +4093,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scene.ForEachScenePresence(delegate(ScenePresence p) m_scene.ForEachScenePresence(delegate(ScenePresence p)
{ {
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
return; return;
p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs);
}); });
@ -4192,7 +4192,7 @@ namespace OpenSim.Region.Framework.Scenes
return; return;
bool doUpdate = false; bool doUpdate = false;
if(m_lastChildAgentUpdateGodLevel != GodController.GodLevel) if(m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel)
doUpdate = true; doUpdate = true;
if(!doUpdate && Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f) if(!doUpdate && Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f)
@ -4209,7 +4209,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
m_childUpdatesBusy = true; m_childUpdatesBusy = true;
m_lastChildAgentUpdatePosition = pos; m_lastChildAgentUpdatePosition = pos;
m_lastChildAgentUpdateGodLevel = GodController.GodLevel; m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel;
m_lastChildAgentUpdateDrawDistance = DrawDistance; m_lastChildAgentUpdateDrawDistance = DrawDistance;
// m_lastChildAgentUpdateCamPosition = CameraPosition; // m_lastChildAgentUpdateCamPosition = CameraPosition;
@ -4470,12 +4470,12 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary> /// </summary>
public void GrantGodlikePowers(UUID token, bool godStatus) public void GrantGodlikePowers(UUID token, bool godStatus)
{ {
if (isNPC) if (IsNPC)
return; return;
bool wasgod = isLegacyGod; bool wasgod = IsViewerUIGod;
GodController.RequestGodMode(godStatus); GodController.RequestGodMode(godStatus);
if (wasgod != isLegacyGod) if (wasgod != IsViewerUIGod)
parcelGodCheck(m_currentParcelUUID); parcelGodCheck(m_currentParcelUUID);
} }
@ -4909,7 +4909,7 @@ namespace OpenSim.Region.Framework.Scenes
RaiseCollisionScriptEvents(coldata); RaiseCollisionScriptEvents(coldata);
// Gods do not take damage and Invulnerable is set depending on parcel/region flags // Gods do not take damage and Invulnerable is set depending on parcel/region flags
if (Invulnerable || isLegacyGod) if (Invulnerable || IsViewerUIGod)
return; return;
// The following may be better in the ICombatModule // The following may be better in the ICombatModule
@ -5194,7 +5194,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p != this && sog.HasPrivateAttachmentPoint) if (p != this && sog.HasPrivateAttachmentPoint)
return; return;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
return; return;
SendTerseUpdateToAgentNF(p); SendTerseUpdateToAgentNF(p);
@ -5308,7 +5308,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p == this) if (p == this)
continue; continue;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
p.ControllingClient.SendEntityUpdate(rootpart, rootflag); p.ControllingClient.SendEntityUpdate(rootpart, rootflag);
@ -5366,7 +5366,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p == this) if (p == this)
continue; continue;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
p.ControllingClient.SendEntityUpdate(rootpart, flag); p.ControllingClient.SendEntityUpdate(rootpart, flag);
@ -5416,7 +5416,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p == this) if (p == this)
continue; continue;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
p.ControllingClient.SendEntityUpdate(part, flag); p.ControllingClient.SendEntityUpdate(part, flag);
@ -5457,7 +5457,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
if (p == this) if (p == this)
continue; continue;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
continue; continue;
p.ControllingClient.SendEntityUpdate(part, flag); p.ControllingClient.SendEntityUpdate(part, flag);
@ -6095,7 +6095,7 @@ namespace OpenSim.Region.Framework.Scenes
// the TP point. This behaviour mimics agni. // the TP point. This behaviour mimics agni.
if (land.LandData.LandingType == (byte)LandingType.LandingPoint && if (land.LandData.LandingType == (byte)LandingType.LandingPoint &&
land.LandData.UserLocation != Vector3.Zero && land.LandData.UserLocation != Vector3.Zero &&
!isLegacyGod && !IsViewerUIGod &&
((land.LandData.OwnerID != m_uuid && ((land.LandData.OwnerID != m_uuid &&
!m_scene.Permissions.IsGod(m_uuid) && !m_scene.Permissions.IsGod(m_uuid) &&
!m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) || !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) ||
@ -6120,7 +6120,7 @@ namespace OpenSim.Region.Framework.Scenes
string reason; string reason;
// dont mess with gods // dont mess with gods
if(isLegacyGod || m_scene.Permissions.IsGod(m_uuid)) if(IsViewerUIGod || m_scene.Permissions.IsGod(m_uuid))
return true; return true;
// respect region owner and managers // respect region owner and managers
@ -6194,7 +6194,7 @@ namespace OpenSim.Region.Framework.Scenes
detobj.posVector = av.AbsolutePosition; detobj.posVector = av.AbsolutePosition;
detobj.rotQuat = av.Rotation; detobj.rotQuat = av.Rotation;
detobj.velVector = av.Velocity; detobj.velVector = av.Velocity;
detobj.colliderType = av.isNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
if(av.IsSatOnObject) if(av.IsSatOnObject)
detobj.colliderType |= 0x4; //passive detobj.colliderType |= 0x4; //passive
else if(detobj.velVector != Vector3.Zero) else if(detobj.velVector != Vector3.Zero)
@ -6417,7 +6417,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p.ParcelHideThisAvatar && p.currentParcelUUID != currentParcelID) if (p.ParcelHideThisAvatar && p.currentParcelUUID != currentParcelID)
{ {
if (isLegacyGod) if (IsViewerUIGod)
p.SendViewTo(this); p.SendViewTo(this);
else else
p.SendKillTo(this); p.SendKillTo(this);
@ -6468,7 +6468,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// those not on parcel dont see me // those not on parcel dont see me
if (currentParcelID != p.currentParcelUUID && !p.isLegacyGod) if (currentParcelID != p.currentParcelUUID && !p.IsViewerUIGod)
{ {
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
} }
@ -6494,9 +6494,9 @@ namespace OpenSim.Region.Framework.Scenes
// only those on previus parcel need receive kills // only those on previus parcel need receive kills
if (previusParcelID == p.currentParcelUUID) if (previusParcelID == p.currentParcelUUID)
{ {
if(!p.isLegacyGod) if(!p.IsViewerUIGod)
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
if(!isLegacyGod) if(!IsViewerUIGod)
killsToSendme.Add(p); // i dont see them killsToSendme.Add(p); // i dont see them
} }
// only those on new parcel need see // only those on new parcel need see
@ -6518,7 +6518,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// those not on new parcel dont see me // those not on new parcel dont see me
if (currentParcelID != p.currentParcelUUID && !p.isLegacyGod) if (currentParcelID != p.currentParcelUUID && !p.IsViewerUIGod)
{ {
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
} }
@ -6544,7 +6544,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive)
continue; continue;
// only those old parcel need kills // only those old parcel need kills
if (previusParcelID == p.currentParcelUUID && !isLegacyGod) if (previusParcelID == p.currentParcelUUID && !IsViewerUIGod)
{ {
killsToSendme.Add(p); // i dont see them killsToSendme.Add(p); // i dont see them
} }
@ -6606,7 +6606,7 @@ namespace OpenSim.Region.Framework.Scenes
if (Scene.AttachmentsModule != null) if (Scene.AttachmentsModule != null)
Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);
if (!ParcelHideThisAvatar || isLegacyGod) if (!ParcelHideThisAvatar || IsViewerUIGod)
return; return;
List<ScenePresence> allpresences = m_scene.GetScenePresences(); List<ScenePresence> allpresences = m_scene.GetScenePresences();

View File

@ -5029,7 +5029,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
else else
{ {
// agent must not be a god // agent must not be a god
if (presence.GodController.GodLevel >= 200) return; if (presence.IsViewerUIGod) return;
// agent must be over the owners land // agent must be over the owners land
ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition); ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition);
@ -5256,7 +5256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return; return;
// Pushee is in GodMode this pushing object isn't owned by them // Pushee is in GodMode this pushing object isn't owned by them
if (avatar.GodController.GodLevel > 0 && m_host.OwnerID != targetID) if (avatar.IsViewerUIGod && m_host.OwnerID != targetID)
return; return;
pusheeav = avatar; pusheeav = avatar;
@ -6687,7 +6687,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
delegate (ScenePresence ssp) delegate (ScenePresence ssp)
{ {
// Gods are not listed in SL // Gods are not listed in SL
if (!ssp.IsDeleted && ssp.GodController.GodLevel == 0.0 && !ssp.IsChildAgent) if (!ssp.IsDeleted && !ssp.IsViewerUIGod && !ssp.IsChildAgent)
{ {
if (!regionWide) if (!regionWide)
{ {

View File

@ -721,7 +721,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
ScenePresence sp = World.GetScenePresence(m_host.OwnerID); ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
if (sp == null || sp.GodController.GodLevel < 200) if (sp == null || !sp.IsViewerUIGod)
{ {
LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
return 0; return 0;
@ -768,7 +768,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
ScenePresence sp = World.GetScenePresence(m_host.OwnerID); ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
if (sp == null || sp.GodController.GodLevel < 200) if (sp == null || !sp.IsViewerUIGod)
{ {
LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
return; return;
@ -799,7 +799,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
ScenePresence sp = World.GetScenePresence(m_host.OwnerID); ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
if (sp == null || sp.GodController.GodLevel < 200) if (sp == null || !sp.IsViewerUIGod)
{ {
LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners."); LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
return 0; return 0;

View File

@ -540,7 +540,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
} }
} }
if (presence.IsDeleted || presence.IsChildAgent || presence.GodController.GodLevel > 0.0) if (presence.IsDeleted || presence.IsChildAgent || presence.IsViewerUIGod)
return; return;
// if the object the script is in is attached and the avatar is the owner // if the object the script is in is attached and the avatar is the owner