aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api
diff options
context:
space:
mode:
authorMelanie Thielker2017-01-06 00:55:14 +0000
committerMelanie Thielker2017-01-06 00:55:14 +0000
commitad8915f154d2ce6ba1b3a021b1725a0b0a671635 (patch)
tree431a20d28837bc3b002dcb65b60450729eb5ed8a /OpenSim/Region/ScriptEngine/Shared/Api
parentAdd GodController class (diff)
downloadopensim-SC_OLD-ad8915f154d2ce6ba1b3a021b1725a0b0a671635.zip
opensim-SC_OLD-ad8915f154d2ce6ba1b3a021b1725a0b0a671635.tar.gz
opensim-SC_OLD-ad8915f154d2ce6ba1b3a021b1725a0b0a671635.tar.bz2
opensim-SC_OLD-ad8915f154d2ce6ba1b3a021b1725a0b0a671635.tar.xz
Restructure god level and permissions
Create a class GodController which controls all aspects of god level, viewer modes and user levels at ScenePresence level.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs2
3 files changed, 8 insertions, 8 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 9cb3cad..92d6808 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4977,7 +4977,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4977 if (presence != null && presence.PresenceType != PresenceType.Npc) 4977 if (presence != null && presence.PresenceType != PresenceType.Npc)
4978 { 4978 {
4979 // agent must not be a god 4979 // agent must not be a god
4980 if (presence.UserLevel >= 200) return; 4980 if (presence.GodController.UserLevel >= 200) return;
4981 4981
4982 // agent must be over the owners land 4982 // agent must be over the owners land
4983 if (m_host.OwnerID == World.LandChannel.GetLandObject(presence.AbsolutePosition).LandData.OwnerID) 4983 if (m_host.OwnerID == World.LandChannel.GetLandObject(presence.AbsolutePosition).LandData.OwnerID)
@@ -5029,7 +5029,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5029 else 5029 else
5030 { 5030 {
5031 // agent must not be a god 5031 // agent must not be a god
5032 if (presence.GodLevel >= 200) return; 5032 if (presence.GodController.GodLevel >= 200) return;
5033 5033
5034 // agent must be over the owners land 5034 // agent must be over the owners land
5035 ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition); 5035 ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition);
@@ -5256,7 +5256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5256 return; 5256 return;
5257 5257
5258 // Pushee is in GodMode this pushing object isn't owned by them 5258 // Pushee is in GodMode this pushing object isn't owned by them
5259 if (avatar.GodLevel > 0 && m_host.OwnerID != targetID) 5259 if (avatar.GodController.GodLevel > 0 && m_host.OwnerID != targetID)
5260 return; 5260 return;
5261 5261
5262 pusheeav = avatar; 5262 pusheeav = avatar;
@@ -6687,7 +6687,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6687 delegate (ScenePresence ssp) 6687 delegate (ScenePresence ssp)
6688 { 6688 {
6689 // Gods are not listed in SL 6689 // Gods are not listed in SL
6690 if (!ssp.IsDeleted && ssp.GodLevel == 0.0 && !ssp.IsChildAgent) 6690 if (!ssp.IsDeleted && ssp.GodController.GodLevel == 0.0 && !ssp.IsChildAgent)
6691 { 6691 {
6692 if (!regionWide) 6692 if (!regionWide)
6693 { 6693 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
index cec595d..49e70bc 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
@@ -721,7 +721,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
721 { 721 {
722 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 722 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
723 723
724 if (sp == null || sp.GodLevel < 200) 724 if (sp == null || sp.GodController.GodLevel < 200)
725 { 725 {
726 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); 726 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
727 return 0; 727 return 0;
@@ -768,7 +768,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
768 { 768 {
769 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 769 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
770 770
771 if (sp == null || sp.GodLevel < 200) 771 if (sp == null || sp.GodController.GodLevel < 200)
772 { 772 {
773 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); 773 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
774 return; 774 return;
@@ -799,7 +799,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
799 { 799 {
800 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 800 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
801 801
802 if (sp == null || sp.GodLevel < 200) 802 if (sp == null || sp.GodController.GodLevel < 200)
803 { 803 {
804 LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners."); 804 LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
805 return 0; 805 return 0;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index d401ed8..c7e7f89 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -540,7 +540,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
540 } 540 }
541 } 541 }
542 542
543 if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) 543 if (presence.IsDeleted || presence.IsChildAgent || presence.GodController.GodLevel > 0.0)
544 return; 544 return;
545 545
546 // if the object the script is in is attached and the avatar is the owner 546 // if the object the script is in is attached and the avatar is the owner