public void llAddToLandBanList(string avatar, double hours)
{
m_host.AddScriptLPS(1);
UUID key;
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition);
if (World.Permissions.CanEditParcelProperties(m_host.OwnerID, land, GroupPowers.LandManageBanned, false))
{
int expires = 0;
if (hours != 0)
expires = Util.UnixTimeSinceEpoch() + (int)(3600.0 * hours);
if (UUID.TryParse(avatar, out key))
{
int idx = land.LandData.ParcelAccessList.FindIndex(
delegate(LandAccessEntry e)
{
if (e.AgentID == key && e.Flags == AccessList.Ban)
return true;
return false;
});
if (idx != -1 && (land.LandData.ParcelAccessList[idx].Expires == 0 || (expires != 0 && expires < land.LandData.ParcelAccessList[idx].Expires)))
return;
if (idx != -1)
land.LandData.ParcelAccessList.RemoveAt(idx);
LandAccessEntry entry = new LandAccessEntry();
entry.AgentID = key;
entry.Flags = AccessList.Ban;
entry.Expires = expires;
land.LandData.ParcelAccessList.Add(entry);
World.EventManager.TriggerLandObjectUpdated((uint)land.LandData.LocalID, land);
}
}
ScriptSleep(m_sleepMsOnAddToLandBanList);
}