diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 30 |
2 files changed, 19 insertions, 17 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs index 535d87a..4d90726 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
70 | public delegate bool IsGridGodHandler(UUID user, Scene requestFromScene); | 70 | public delegate bool IsGridGodHandler(UUID user, Scene requestFromScene); |
71 | public delegate bool IsAdministratorHandler(UUID user); | 71 | public delegate bool IsAdministratorHandler(UUID user); |
72 | public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene); | 72 | public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene); |
73 | public delegate bool EditParcelPropertiesHandler(UUID user, ILandObject parcel, GroupPowers p, Scene scene); | 73 | public delegate bool EditParcelPropertiesHandler(UUID user, ILandObject parcel, GroupPowers p, Scene scene, bool allowManager); |
74 | public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene); | 74 | public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene); |
75 | public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene); | 75 | public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene); |
76 | public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene); | 76 | public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene); |
@@ -763,7 +763,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
763 | 763 | ||
764 | #region EDIT PARCEL | 764 | #region EDIT PARCEL |
765 | 765 | ||
766 | public bool CanEditParcelProperties(UUID user, ILandObject parcel, GroupPowers p) | 766 | public bool CanEditParcelProperties(UUID user, ILandObject parcel, GroupPowers p, bool allowManager) |
767 | { | 767 | { |
768 | EditParcelPropertiesHandler handler = OnEditParcelProperties; | 768 | EditParcelPropertiesHandler handler = OnEditParcelProperties; |
769 | if (handler != null) | 769 | if (handler != null) |
@@ -771,7 +771,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
771 | Delegate[] list = handler.GetInvocationList(); | 771 | Delegate[] list = handler.GetInvocationList(); |
772 | foreach (EditParcelPropertiesHandler h in list) | 772 | foreach (EditParcelPropertiesHandler h in list) |
773 | { | 773 | { |
774 | if (h(user, parcel, p, m_scene) == false) | 774 | if (h(user, parcel, p, m_scene, allowManager) == false) |
775 | return false; | 775 | return false; |
776 | } | 776 | } |
777 | } | 777 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 2420048..cfa862e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1881,25 +1881,27 @@ namespace OpenSim.Region.Framework.Scenes | |||
1881 | { | 1881 | { |
1882 | SceneObjectPart part = parts[i]; | 1882 | SceneObjectPart part = parts[i]; |
1883 | 1883 | ||
1884 | Scene.ForEachScenePresence(sp => | 1884 | if (Scene != null) |
1885 | { | 1885 | { |
1886 | if (!sp.IsChildAgent && sp.ParentID == LocalId) | 1886 | Scene.ForEachRootScenePresence(delegate(ScenePresence avatar) |
1887 | sp.StandUp(); | ||
1888 | |||
1889 | if (!silent) | ||
1890 | { | 1887 | { |
1891 | part.ClearUpdateSchedule(); | 1888 | if (avatar.ParentID == LocalId) |
1892 | if (part == m_rootPart) | 1889 | avatar.StandUp(); |
1890 | |||
1891 | if (!silent) | ||
1893 | { | 1892 | { |
1894 | if (!IsAttachment | 1893 | part.ClearUpdateSchedule(); |
1895 | || AttachedAvatar == sp.UUID | 1894 | if (part == m_rootPart) |
1896 | || !HasPrivateAttachmentPoint) | 1895 | { |
1897 | sp.ControllingClient.SendKillObject(new List<uint> { part.LocalId }); | 1896 | if (!IsAttachment |
1897 | || AttachedAvatar == avatar.ControllingClient.AgentId | ||
1898 | || !HasPrivateAttachmentPoint) | ||
1899 | avatar.ControllingClient.SendKillObject(new List<uint> { part.LocalId }); | ||
1900 | } | ||
1898 | } | 1901 | } |
1899 | } | 1902 | }); |
1900 | }); | 1903 | } |
1901 | } | 1904 | } |
1902 | |||
1903 | } | 1905 | } |
1904 | 1906 | ||
1905 | public void AddScriptLPS(int count) | 1907 | public void AddScriptLPS(int count) |