/// <summary> /// Set the permissions on multiple objects /// </summary> /// <param name="simulator">A reference to the <seealso cref="OpenMetaverse.Simulator"/> object where the objects reside</param> /// <param name="localIDs">An array which contains the IDs of the objects to set the permissions on</param> /// <param name="who">The new Who mask to set</param> /// <param name="permissions">The new Permissions mark to set</param> /// <param name="set">TODO: What does this do?</param> public void SetPermissions(Simulator simulator, List<uint> localIDs, PermissionWho who, PermissionMask permissions, bool set) { ObjectPermissionsPacket packet = new ObjectPermissionsPacket(); packet.AgentData.AgentID = Client.Self.AgentID; packet.AgentData.SessionID = Client.Self.SessionID; // Override can only be used by gods packet.HeaderData.Override = false; packet.ObjectData = new ObjectPermissionsPacket.ObjectDataBlock[localIDs.Count]; for (int i = 0; i < localIDs.Count; i++) { packet.ObjectData[i] = new ObjectPermissionsPacket.ObjectDataBlock(); packet.ObjectData[i].ObjectLocalID = localIDs[i]; packet.ObjectData[i].Field = (byte)who; packet.ObjectData[i].Mask = (uint)permissions; packet.ObjectData[i].Set = Convert.ToByte(set); } Client.Network.SendPacket(packet, simulator); }
/// <summary> /// /// </summary> /// <param name="simulator"></param> /// <param name="localIDs"></param> /// <param name="who"></param> /// <param name="permissions"></param> /// <param name="set"></param> public void SetPermissions(Simulator simulator, List<uint> localIDs, Helpers.PermissionWho who, Helpers.PermissionType permissions, bool set) { ObjectPermissionsPacket packet = new ObjectPermissionsPacket(); packet.AgentData.AgentID = Client.Network.AgentID; packet.AgentData.SessionID = Client.Network.SessionID; packet.HeaderData.Override = false; packet.ObjectData = new ObjectPermissionsPacket.ObjectDataBlock[localIDs.Count]; int i = 0; foreach (uint localID in localIDs) { packet.ObjectData[i] = new ObjectPermissionsPacket.ObjectDataBlock(); packet.ObjectData[i].ObjectLocalID = localID; packet.ObjectData[i].Field = (byte)who; packet.ObjectData[i].Mask = (uint)permissions; packet.ObjectData[i].Set = Convert.ToByte(set); i++; } Client.Network.SendPacket(packet, simulator); }