Merge branch 'master' into httptests
commit
694720d7a9
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue