public void RevokePermissions(UUID sourceID, ScriptPermissions permissions)
        {
            int i;

            if ((permissions & ScriptPermissions.TriggerAnimation) != 0)
            {
                lock (m_Lock)
                {
                    i = 0;
                    while (i < m_ActiveAnimations.Count)
                    {
                        if (m_ActiveAnimations[i].SourceID == sourceID)
                        {
                            m_ActiveAnimations.RemoveAt(i);
                        }
                        else
                        {
                            ++i;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 public abstract void RevokePermissions(UUID sourceID, UUID itemID, ScriptPermissions permissions);
Esempio n. 3
0
 public abstract ScriptPermissions RequestPermissions(ObjectPart part, UUID itemID, ScriptPermissions permissions, UUID experienceID);
Esempio n. 4
0
 protected void RevokeAnimPermissions(UUID sourceID, ScriptPermissions permissions) => m_AnimationController.RevokePermissions(sourceID, permissions);
Esempio n. 5
0
 public abstract void RevokePermissions(UUID permissionsKey, ScriptPermissions permissions);
Esempio n. 6
0
 public override void RevokePermissions(UUID sourceID, UUID itemID, ScriptPermissions permissions) =>
 RevokeAnimPermissions(sourceID, permissions);
Esempio n. 7
0
        public override ScriptPermissions RequestPermissions(ObjectPart part, UUID itemID, ScriptPermissions permissions, UUID experienceID)
        {
            var         autoGrant = ScriptPermissions.None;
            ObjectGroup sitOn     = SittingOnObject;

            if ((sitOn != null && sitOn.ID == itemID) || part.ObjectGroup.AttachPoint != Types.Agent.AttachmentPoint.NotAttached)
            {
                autoGrant |= ScriptPermissions.ControlCamera;
                autoGrant |= ScriptPermissions.TakeControls;
                autoGrant |= ScriptPermissions.TrackCamera;
                autoGrant |= ScriptPermissions.TriggerAnimation;
            }
            if (part.ObjectGroup.AttachPoint != Types.Agent.AttachmentPoint.NotAttached)
            {
                autoGrant |= ScriptPermissions.OverrideAnimations;
                autoGrant |= ScriptPermissions.Attach;
            }
            if ((permissions & autoGrant) == permissions)
            {
                return(permissions);
            }

            AgentCircuit   circuit;
            SceneInterface scene = part.ObjectGroup.Scene;

            if (experienceID != UUID.Zero && Circuits.TryGetValue(scene.ID, out circuit) &&
                !circuit.AddExperienceTimeout(part.ID, itemID))
            {
                return(ScriptPermissions.None);
            }
            var m = new ScriptQuestion
            {
                ExperienceID = experienceID,
                ItemID       = itemID,
                ObjectName   = part.ObjectGroup.Name,
                ObjectOwner  = scene.AvatarNameService.ResolveName(part.Owner).FullName,
                Questions    = permissions,
                TaskID       = part.ID
            };

            SendMessageAlways(m, part.ObjectGroup.Scene.ID);
            return(ScriptPermissions.None);
        }
Esempio n. 8
0
 public override ScriptPermissions RequestPermissions(ObjectPart part, UUID itemID, ScriptPermissions permissions) =>
 RequestPermissions(part, itemID, permissions, UUID.Zero);
Esempio n. 9
0
 public override ScriptPermissions RequestPermissions(ObjectPart part, UUID itemID, ScriptPermissions permissions, UUID experienceID)
 {
     throw new NotImplementedException();
 }
Esempio n. 10
0
 public override void RevokePermissions(UUID permissionsKey, ScriptPermissions permissions)
 {
     /* nothing to do */
 }
Esempio n. 11
0
 public PermsGranterInfo(PermsGranterInfo i)
 {
     PermsGranter       = i.PermsGranter;
     PermsMask          = i.PermsMask;
     DebitPermissionKey = i.DebitPermissionKey;
 }