fix(settings.lsl): fix: #3 - finish implementing basic settings module

Signed-off-by: zontreck <tarapiccari@gmail.com>
This commit is contained in:
zontreck 2024-10-04 23:37:27 -07:00
parent fb91a6ea18
commit 9eb015e440

View file

@ -4,9 +4,28 @@
#include "../external/AriasCreations/Common.lsl" #include "../external/AriasCreations/Common.lsl"
#include "../external/AriasCreations/Helpers.lsl" #include "../external/AriasCreations/Helpers.lsl"
reqAllSettings(){
DEBUG_FUNC(true, "req_all_settings", []);
// List Found Keys
list lKeys = llLinksetDataFindKeys("nusetting.", 0, 0);
integer i = 0;
integer end = llGetListLength(lKeys);
for(i=0;i<end; i++) {
sKey = llList2String(lKeys, i);
ReadSetting(llGetSubString(sKey, 9, -1));
}
DEBUG_FUNC(false, "req_all_settings", []);
}
default default
{ {
state_entry() {
llSetTimerEvent(5); // TODO: Change this to schedule with the TaskScheduler module for a callback
// After expiration of timer, send all settings
}
changed(integer iChange) { changed(integer iChange) {
if(iChange & CHANGED_OWNER) { if(iChange & CHANGED_OWNER) {
llLinksetDataDeleteFound("nusetting.", ""); llLinksetDataDeleteFound("nusetting.", "");
@ -14,6 +33,12 @@ default
} }
} }
timer() {
llSetTimerEvent(0);
reqAllSettings();
}
link_message(integer iSender, integer iNum, string sMsg, key kID) link_message(integer iSender, integer iNum, string sMsg, key kID)
{ {
DEBUG_FUNC(true, "link_message", [iNum, sMsg, kID]); DEBUG_FUNC(true, "link_message", [iNum, sMsg, kID]);
@ -24,17 +49,7 @@ default
} else if(llJsonGetValue(sMsg, ["op"]) == OP_SETTINGS_READ) { } else if(llJsonGetValue(sMsg, ["op"]) == OP_SETTINGS_READ) {
string sKey = llJsonGetValue(sMsg, ["key"]); string sKey = llJsonGetValue(sMsg, ["key"]);
if(sKey == "ALL") { if(sKey == "ALL") {
DEBUG_FUNC(true, "req_all_settings", []); reqAllSettings();
// List Found Keys
list lKeys = llLinksetDataFindKeys("nusetting.", 0, 0);
integer i = 0;
integer end = llGetListLength(lKeys);
for(i=0;i<end; i++) {
sKey = llList2String(lKeys, i);
ReadSetting(llGetSubString(sKey, 9, -1));
}
DEBUG_FUNC(false, "req_all_settings", []);
} }
ReadSetting(sKey); ReadSetting(sKey);
} else if(llJsonGetValue(sMsg, ["op"]) == OP_SETTINGS_DELETE) { } else if(llJsonGetValue(sMsg, ["op"]) == OP_SETTINGS_DELETE) {