OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llUnSit C# (CSharp) Method

llUnSit() public method

public llUnSit ( string id ) : void
id string
return void
        public void llUnSit(string id)
        {
            m_host.AddScriptLPS(1);

            UUID key = new UUID();
            if (UUID.TryParse(id, out key))
            {
                ScenePresence av = World.GetScenePresence(key);
                List<ScenePresence> sittingAvatars = m_host.ParentGroup.GetSittingAvatars();

                if (av != null)
                {
                    if (sittingAvatars.Contains(av))
                    {
                        // if the avatar is sitting on this object, then
                        // we can unsit them.  We don't want random scripts unsitting random people
                        // Lets avoid the popcorn avatar scenario.
                        av.StandUp();
                    }
                    else
                    {
                        // If the object owner also owns the parcel
                        // or
                        // if the land is group owned and the object is group owned by the same group
                        // or
                        // if the object is owned by a person with estate access.
                        ILandObject parcel = World.LandChannel.GetLandObject(av.AbsolutePosition);
                        if (parcel != null)
                        {
                            if (m_host.OwnerID == parcel.LandData.OwnerID ||
                                (m_host.OwnerID == m_host.GroupID && m_host.GroupID == parcel.LandData.GroupID
                                && parcel.LandData.IsGroupOwned) || World.Permissions.IsGod(m_host.OwnerID))
                            {
                                av.StandUp();
                            }
                        }
                    }
                }
            }
        }
LSL_Api