Difference between revisions of "LlAddToLandBanList"

From Second Life Wiki
Jump to navigation Jump to search
(mention effect of hours == 0)
m
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{Issues/SVC-1911}}{{LSL_Function/avatar|avatar}}
|func_id=310|func_sleep=0.1|func_energy=10.0
|func_id=310|func_sleep=0.1|func_energy=10.0
|func=llAddToLandBanList|sort=AddToLandBanList
|func=llAddToLandBanList|sort=AddToLandBanList
|p1_type=key|p1_name=avatar|p2_type=float|p2_name=hours
|p1_type=key|p1_name=avatar|p2_type=float|p2_name=hours
|func_footnote
|func_footnote
|func_desc=Add '''avatar''' to the land ban list for '''hours''', or until removed if '''hours''' is zero.
|func_desc=Add {{LSLP|avatar}} to the land ban list for {{LSLP|hours}}, or indefinitely if {{LSLP|hours}} is zero.
|return_text
|return_text
|spec
|spec
|caveats
|caveats=
* Must be owned by the land owner.
|constants
|constants
|examples=<lsl>// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
|examples=<source lang="lsl2">// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
// This is meant only as an example of the land ban and pass management functions.
// This is meant only as an example of the land ban and pass management functions.
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
Line 67: Line 69:
     sensor(integer num)
     sensor(integer num)
     {
     {
         integer i;
         integer i = 0;
         for (i=0; i< num; ++i)
         for (; i < num; ++i)
         {
         {
             if (command == "ban")
             if (command == "ban")
Line 96: Line 98:
         command = "";
         command = "";
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_functions=
|also_functions=
Line 107: Line 109:
|also_events
|also_events
|also_articles
|also_articles
|notes
|issues
|haiku=
{{Haiku|All are welcome here|except for the following|who have annoyed me}}
|cat1=Security
|cat1=Security
|cat2=Parcel
|cat2=Parcel

Latest revision as of 22:09, 21 January 2015

Summary

Function: llAddToLandBanList( key avatar, float hours );
0.1 Forced Delay
10.0 Energy

Add avatar to the land ban list for hours, or indefinitely if hours is zero.

• key avatar avatar UUID
• float hours

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • Must be owned by the land owner.

Examples

// This is not a complete solution, requires full avatar names to work - even for unbanning someone!
// This is meant only as an example of the land ban and pass management functions.
// free to copy, use, modify, distribute - just don't ask me to debug your modified code. ;-)
// 
// Commands are:
//   /5 ban:full_avatar_name
//   /5 tempban:full_avatar_name
//   /5 unban:full_avatar_name
//   /5 pass:full_avatar_name
//   /5 unpass:full_avatar_name
//   /5 clearban
//   /5 clearpass

string command;

default
{
    state_entry()
    {
        llListen(5, "", llGetOwner(), "");
    }
    
    on_rez(integer param)
    {
        llResetScript();
    }

    listen(integer chan, string name, key id, string message)
    {
        if (command != "")
        {
            llOwnerSay("Sorry, still processing last command, try again in a second.");
        }
        
        list args = llParseString2List(message,[":"],[]);
        command = llToLower(llList2String(args,0));
        
        if (command == "clearbans")
        {
            llResetLandBanList();
        }
        if (command == "clearpass")
        {
            llResetLandPassList();
        }
        else
        {
            llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
        }
    }
    
    no_sensor()
    {
        command = "";
    }
    
    sensor(integer num)
    {
        integer i = 0;
        for (; i < num; ++i)
        {
            if (command == "ban")
            {
                // Ban indefinetely 
                llAddToLandBanList(llDetectedKey(i),0.0);
            }
            if (command == "tempban")
            {
                // Ban for 1 hour.
                llAddToLandBanList(llDetectedKey(i),1.0);
            }
            if (command == "unban")
            {
                llRemoveFromLandBanList(llDetectedKey(i));
            }
            if (command == "pass")
            {
                // Add to land pass list for 1 hour
                llAddToLandPassList(llDetectedKey(i),1.0);
            }
            if (command == "unpass")
            {
                llRemoveFromLandPassList(llDetectedKey(i));
            }
        }
        command = "";
    }
}

Deep Notes

Signature

function void llAddToLandBanList( key avatar, float hours );

Haiku

All are welcome here
except for the following
who have annoyed me