API_RUN_METHOD [2]

REQUIRES API KEY. This task lets you trigger tasks on certain games.

#define API_RUN_METHOD 2
#define METHOD_TABLE "a"        // str - Table
#define METHOD_NAME "b"            // str - Name
#define METHOD_DATA "c"            // var - data

And returns {METHOD_TABLE:(int)game, METHOD_NAME:(int)task, METHOD_DATA:(var)data}

Example: Set your LFP sex to male.


#include "jasx_hud/_core.lsl" 

default
{
    state_entry()
    {
        // Set my LFP sex to male
        string call = apiTask(
            // Task to get data from a table
            API_RUN_METHOD, 
            // This is the data that gets passed along
            llList2Json(JSON_OBJECT, [
                METHOD_TABLE, "jasx_users",
                METHOD_NAME, "sex",
                METHOD_DATA, 0x1
            ]), 
            "" // Optional callback
        );
        
        // Send the API call here. The first value is an API key you can get in the API reference
        sendAPI("replaceWithMyAPIKey", [call]);  
    }
    
    http_response(key id, integer status, list meta, string body){
        
        if(llJsonValueType(body,[]) != JSON_OBJECT)llOwnerSay("Error:\n"+body);
        else{
            
            // There were some messages from the server included, let's output them
            if(llJsonValueType(body, [API_MESSAGES]) != JSON_INVALID){
                list m = llJson2List(llJsonGetValue(body, [API_MESSAGES]));
                while(llGetListLength(m)){
                    llOwnerSay(llList2String(m,0));
                    m = llDeleteSubList(m,0,0);
                }
            }
            
            // Let's check what tasks we got back
            if(llJsonValueType(body, [API_TASKS]) != JSON_INVALID){            
                list d = llJson2List(llJsonGetValue(body, [API_TASKS]));
                while(llGetListLength(d)){
                    string data = llList2String(d,0);
                    d = llDeleteSubList(d, 0,0);
                    
                    integer task = (integer)llJsonGetValue(data, [API_TASK]);
                    string taskData = llJsonGetValue(data, [API_DATA]);
                    string callback = llJsonGetValue(data, [API_CALLBACK]);
                    integer status = (integer)llJsonGetValue(data, [API_STATUS]);
                    
                    // Success! The API call worked!
                    if(status == STATUS_SUCCESS){
                        llOwnerSay("Task ID: "+(string)task+" was executed successfully!");
                        if(callback != JSON_INVALID)llOwnerSay("Callback: "+callback);
                        if(taskData != JSON_INVALID)llOwnerSay("Data returned: "+taskData);
                        else llOwnerSay("Server returned no data. Perhaps it didn't find anything?");
                    }
                    else{ // There was an error
                        llOwnerSay("Task ID: "+(string)task+" failed:");
                        if(status == STATUS_FAIL_ACCESS_DENIED)llOwnerSay("Access denied");
                        else if(status == STATUS_FAIL_DATA_MISSING)llOwnerSay("Data fields missing");
                        else llOwnerSay("See messages.");
                    }
                    
                }
            }
            
        }
    }



List of available Tasks per view

jasx_users
MethodDescription
flagsint - bitfield:
FLAG_SHOW_ADULT_ACHIEVEMENTS = 1;
FLAG_HIDDEN = 4;
Return data: (int)bitfield
sexint - Set Sex:
SEX_UNDEFINED = 0;
penis = 0x1
vagina = 0x2;
breasts = 0x4;
Return data: (int)sex
speciesstr - Species:
Alphanumeric only with spaces. Max 20 characters.
Return data: (str)species
lfp_gamesarray - GameIDs (See jx API.lsl header file)
lfp_status(bool)bool - LFP on/off - If you wish to remain active, you need to call LFP on every 30 sec to refresh it.
Return data: (int)timeout
contentservstr - URL which content-serv requests are sent to. Has to be a valid SL http_request url.
fliststr - Set your active F-List character
roleplay_statusint - For LFP. 0 = no RP, 1 = either, 2 = only RP

Back to Start