Group chat listener
This example demonstrates how to reply to each IM that appears on group chat using AdminBot for LSL.
Script
// SmartBots AdminBot for Groups, https://www.mysmartbots.com
// Documentation and help: https://www.mysmartbots.com/dev/docs/AdminBot_for_LSL
string SB_VERSION = "2.0";
// Setup and startup
integer SB_SETUP_SETGROUP = 180101;
integer SB_SETUP_SETGROUPUUID = 180102;
integer SB_SETUP_DEBUG = 180103;
integer SB_STATUS_QUERY = 180104;
integer SB_SETUP_DEVICENAME = 180111;
integer SB_SETUP_BOTNAME = 180112;
integer SB_SETUP_SETOPTIONS = 180113;
// Group members control
integer SB_INVITE_SEND = 180105;
integer SB_GROUP_EJECT = 180107;
integer SB_AVATAR_GROUP = 180114;
integer SB_ADJUST_GROUP_ROLE = 180120;
integer SB_GET_GROUP_ROLES = 180121;
// Group chat
integer SB_CHAT_SAY = 180106;
integer SB_CHAT_LISTEN = 180108;
integer SB_CHAT_MUTE = 180115;
// Notices
integer SB_NOTICE_SEND = 180109;
// Misc. commands
integer SB_RESET_ADMINBOT = 9996660;
integer SB_SETUP_SETLINK = 180110;
// EVENTS
integer SB_COMMAND_FAILED = 180201;
integer SB_STATUS_REPLY = 180202;
integer SB_CHAT_MESSAGE = 180203;
integer SB_SETUP_SUCCESS = 180204;
integer SB_SETUP_FAILED = 180205;
integer SB_CHAT_SUCCESS = 180206;
integer SB_GROUP_CHECKED = 180207;
default
{
state_entry() {
llMessageLinked(LINK_SET, SB_SETUP_SETGROUP, "Your group name", "SECURITY CODE");
}
// This event parses different replies from AdminBot
link_message(integer sender, integer cmd, string data, key id) {
// Group command failed
if(cmd == SB_COMMAND_FAILED) {
list parts = llParseString2List(data, ["\n"], []);
string status = llList2String(parts, 0);
string expires = llList2String(parts, 1);
llOwnerSay("AdminBot command failed, error code: " + status);
}
// Group setup failed
if(cmd == SB_SETUP_FAILED) {
list parts = llParseString2List(data, ["\n"], []);
string status = llList2String(parts, 0);
string expires = llList2String(parts, 1);
llOwnerSay("AdminBot group setup failed:\n" +
"status: " + status + "\n" +
"expired: " + expires);
}
// Group setup successful
if(cmd == SB_SETUP_SUCCESS) {
llOwnerSay("AdminBot group successfully set, asking to listen to group chat");
// Start listening to group chat
llMessageLinked(LINK_SET, SB_CHAT_LISTEN, "1", NULL_KEY);
// Say something in group chat
llMessageLinked(LINK_SET, SB_CHAT_SAY, "I'm listening on group chat, please talk to me!", NULL_KEY);
}
// Group chat message received
if(cmd == SB_CHAT_MESSAGE) {
llOwnerSay("We've got the group chat message: " + data);
llMessageLinked(LINK_SET, SB_CHAT_SAY, "Magic box replies to you, master!", NULL_KEY);
}
}
}