Функции Lua API в RusHub
Материал из MyDC's Wiki
Config — объект конфигурационных настроек хаба.
Config.table() — возвращает таблицу с названиями всех возможных настроек хаба.
Core.sMainDir — основной путь, по которому располагается хаб.
Core.sScriptsDir — абсолютный путь, по которому располагается директория скриптов.
Core.sHubVersion — название и версия хаба.
Core.sLuaPluginVersion — название и версия плагина.
Core.sSystem — название и версия ОС.
print(sMsg) — выводит sMsg в консоль хаба, если он запущен не в режиме сервиса/демона. Может применяться для вывода отладочной информации при написании скриптов.
_TRACEBACK = debug.traceback — способ включить stack trace для скрипта.
Содержание |
Отправка данных
Core.SendToAll
Core.SendToAll(sData, sNick, sFrom)
Описание:
- Функция отправляет данные sData всем пользователям, которые находятся на хабе.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToUser
Core.SendToUser(UID/sToNick/tNicks, sData, sNick, sFrom)
Описание:
- Функция отправляет данные sData пользователю с идентификатором UID (User ID), или с ником sToNick, или таблице ников tNicks.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToAllExceptNicks
Core.SendToAllExceptNicks(tExcept, sData, sNick, sFrom)
Описание:
- Функция отправляет данные sData всем пользователям, которые находятся на хабе, кроме пользователей, ники которых указаны в таблице tExcept, если таковые находится на хабе.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToProfile
Core.SendToProfile(iProfile/tProfiles, sData, sNick, sFrom)
Описание:
- Функция отправляет данные sData профилю/профилям. Если в первом аргументе функции указано число, то данные отправляются указанному профилю, если в первом аргументе указана таблица, то данные отправляются профилям, которые указаны в этой таблице.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToNicks
Core.SendToNicks(tNicks, sData, sNick, sFrom)
Описание:
- Функция отправляет данные sData всем пользователям, ники которых указаны в таблице tNicks, если таковые находится на хабе.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToUser(tNicks, sData, sNick, sFrom)
Core.SendToAllExceptIPs
Core.SendToAllExceptIPs(tExcept, sData, sNick, sFrom)
Описание:
- Функция отправляет сообщение всем пользователям, за исключением пользователей с IP-адресами, которые указаны в таблице tExcept.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SendToIP
Core.SendToIP(sIP, sData, sNick, sFrom, iProfile/tProfiles)
Описание:
- Функция отправляет сообщение sData всем пользователям с указанным IP-адресом sIP.
- Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick.
- Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick.
- Если указан профиль/таблица с профилями iProfile/tProfiles, то сообщение отправляется только указанным профилям с данным IP-адресом.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Работа с пользователями
Core.GetUser
Core.GetUser(
UID/sNick, iByte)
Описание:
- Возвращает UID пользователя по нику sNick.
Описания битов параметра iByte:
- 2^0 — ник (sNick);
- 2^1 — ip (sIP);
- 2^2 — UID (UID);
- 2^3 — профиль (iProfile);
- 2^4 — MyINFO строка (sMyINFO);
- 2^5 — пользовательские данные (sData);
- 2^6 — пользователь в оп-листе, то есть имеет ключик (bInOpList);
- 2^7 — пользователь полностью вошёл и добавлен в список пользователей (bInUserList);
- 2^8 — реальный порт (iPort);
- 2^9 — порт коннекта (iPortConn);
- 2^10 — мак адрес (sMacAddress);
- 2^11 — версия протокола (sVersion);
- 2^12 — пользователь скрыт в ник-листе (bHide);
- 2^13 — пользователь в ip-листе, то есть ему отсылаются ip адреса всех пользователей (bInIpList).
Core.SetUser
Core.SetUser(UID/sNick, iType, Value)
Описание:
- Функция устанавливает значение Value для данных типа iType для пользователя с ником sNick.
- Описание типов данных iType:
- 1 — профиль (iProfile);
- 2 — MyINFO строка (sMyINFO);
- 3 — пользовательские данные (sData);
- 4 — пользователь в оп-листе, то есть имеет ключик (bInOpList);
- 5 — пользователь скрыт в ник-листе (bHide);
- 6 — пользователь в ip-листе, то есть ему отсылаются ip адреса всх пользователей (bInIpList).
UID[sName] = Value
или Core.GetUser(sNick)[sName] = Value
, где sName — это одна из строк: "iProfile", "sMyINFO", "sData" и тд.
Core.GetUsers
Core.GetUsers(sIP, iByte)
Core.GetUsers(sIP, bAll)
Описание:
- Возвращает таблицу с UID-ми вошедших пользователей. Если указан аргумент bAll — в таблице будут и пользователи, ещё не полностью вошедшие на хаб.
- Примеры:
Core.GetUsers()
— вернёт только уже полностью вошедших на хаб пользователей.Core.GetUsers(true)
— вернёт всех пользователей.Core.GetUsers(sIP)
— вернёт уже полностью вошедших пользователей с указанным IP.Core.GetUsers(sIP, true)
— вернёт всех пользователей с указанным IP.Core.GetUsers(iByte)
— таблица с таблицами пользователей, которые содержат данные битов параметра iByte.Core.GetUsers(sIP, iByte)
— таблица с таблицами пользователей с указанным IP, которые содержат данные битов параметра iByte.
Core.Disconnect
Core.Disconnect(UID/sNick)
Описание:
- Функция отключает пользователя по идентификатору UID, или по нику sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.DisconnectIP
Core.DisconnectIP(sIP, iProfile/tProfiles)
Описание:
- Функция отключает всех пользователей с указанным IP.
- Если указан профиль/таблица с профилями iProfile/tProfiles, то отключаются только пользователи с указанным профилем/профилями.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.Redirect
Core.Redirect(UID/sNick, sAddress[, sReason])
Описание:
- Перенаправляет пользователя на адрес sAddress с причиной sReason. Причину указывать необязательно.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение с ошибкой в случае неудачи.
Управление скриптами
Core.RestartScripts
Core.RestartScripts(iType)
Описание:
- Функция перезапускает все скрипты. Если параметр iType отсутствует, равен nil или равен 0, то перезагружаются все скрипты без исключения. Если параметр iType равен 1, то перезагружаются все скрипты, кроме работающих на данный момент. Если параметр iType равен 2, то перезагружаются все скрипты, кроме текущего скрипта (из которого была вызвана данная функция).
Возвращаемые значения:
- true в любом случае.
Core.RestartScript
Core.RestartScript(sScriptName)
Описание:
- Функция (пере)запускает скрипт с именем sScriptName. Если параметр sScriptName отсутствует или равен nil, то функция перезапускает текущий скрипт.
Возвращаемые значения:
- true в случае успешного запуска,
- nil в случае неудачи,
- nil и сообщение об ошибке в случае синтаксической ошибки. Отлавливаются на данный момент исключительно синтаксические ошибки. Runtime-ошибки не отлавливаются.
Core.StopScript
Core.StopScript(sScriptName)
Описание:
- Функция останавливает скрипт с именем sScriptName. Если параметр sScriptName отсутствует или равен nil, то функция останавливает текущий скрипт.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.StartScript
Core.StartScript(sScriptName)
Описание:
- Функция запускает скрипт с именем sScriptName.
Возвращаемые значения:
- true в случае успешного запуска,
- nil в случае неудачи,
- nil и сообщение об ошибке в случае синтаксической ошибки. Отлавливаются на данный момент исключительно синтаксические ошибки. Runtime-ошибки не отлавливаются.
Core.MoveUpScript
Core.MoveUpScript(sScriptName)
Описание:
- Функция поднимает скрипт с именем sScriptName в дереве выполнения. Если параметр не указан, то поднимается текущий скрипт.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.MoveDownScript
Core.MoveDownScript(sScriptName)
Описание:
- Функция опускает скрипт с именем sScriptName в дереве выполнения. Если параметр не указан, то опускается текущий скрипт.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.GetScripts
Core.GetScripts()
Описание:
- Функция возвращает таблицу со скриптами как таблицами с полями sName, bEnabled, iMemUsage.
Core.GetScript
Core.GetScript(sScriptName)
Описание:
- Функция возвращает таблицу состояния скрипта с полями sName, bEnabled, iMemUsage.
- Если имя скрипта не указано, то возвращается таблица текущего скрипта.
Взаимодействие с другими скриптами
Core.GetGVal
Core.GetGVal(sScriptName, sParam)
Описание:
- Функция возвращает значение глобальной переменной с именем sParam скрипта sScriptName.
- Функция работает только с переменными типов: string, number, boolean, lightuserdata и table, для остальных типов будет возвращать nil.
Возвращаемые значения:
- значение в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SetGVal
Core.SetGVal(sScriptName, sParam, Value)
Описание:
- Функция устанавливает значение глобальной переменной с именем sParam скрипта sScriptName.
- Функция работает только с переменными типов: string, number, boolean, lightuserdata и table.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.Call
Core.Call(sScriptName, sFunc, ...)
Описание:
- Функция вызывает функцию sFunc другого скрипта sScriptName с параметрами, которые указываются в аргументе 3, 4 и тд.
- Параметры функции и возвращаемые значения функции могут быть только следующих типов: string, number, boolean, table и userlightdata.
Возвращаемые значения:
- Функция Core.Call возвращает все те значения, которые возвращает функция sFunc скрипта sScriptName.
- В случае ошибки функция возвращает nil и сообщение об ошибке.
Core.SetCmd
Core.SetCmd(sData)
Описание:
- Функция устанавливает новую команду протокола NMDC для функций последующих скриптов.
- Устанавливаемая команда должна быть синтаксически правильной, то есть соответствовать по синтаксису команде текущего события (API функции события). В противном случае функция не изменит команду и вернёт nil и соответствующее сообщение.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Прочие функции
Core.GetUsersCount
Core.GetUsersCount()
Описание:
- Возвращает текущее количество онлайн пользователей.
Core.GetTotalShare()
Описание:
- Возвращает текущую суммарную шару всех пользователей хаба.
Core.GetUpTime
Core.GetUpTime()
Описание:
- Функция возвращает время работы хаба (в секундах).
Core.AddTimer
Core.AddTimer(iId, iInterval, sFunc)
Описание:
- Функция добавляет таймер с идентификатором iId и интервалом срабатывания iInterval (в мсек). Если указано имя глобальной функции sFunc, то эта функция и будет выполняться, если имя функции не указано, то скрипт ищет глобальную функцию OnTimer (в параметр функции передаётся идентификатор). Идентификатор может повторяться.
Возвращаемые значения:
- Количество зарегистрированных таймеров с таким iId в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.DelTimer
Core.DelTimer(iId)
Описание:
- Функция удаляет таймер по идентификатору iId.
- Идентификатор может повторяться, однако, удаляется таймер по идентификатору, поэтому удалятся все таймеры с указанным идентификатором. Удаляются таймеры только текущего скрипта! Таймеры с таким же идентификатором других скриптов не удаляются!
Возвращаемые значения:
- Количество удалённых таймеров в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.RegBot
Core.RegBot(sNick, bKey, sMyINFO, sIP)
Описание:
- Функция регистрирует бота с ником sNick.
- Если bKey равен true, то бот регистрируется с ключом (как оператор).
- sMyINFO — часть команды $MyINFO (начиная с описания и до конца MyINFO).
- sIP — возможный IP-адрес для бота.
- Обязательным параметром является только первый параметр — sNick.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.UnregBot
Core.UnregBot(sNick)
Описание:
- Функция удаляет регистрацию бота с ником sNick из списка.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.GetConfig
Core.GetConfig(sName)
Описание:
- Функция возвращает настройку хаба sName. Какого бы типа ни была настройка, всегда возвращается строковый тип.
В случае неудачи возвращает nil и сообщение об ошибке.
Core.SetConfig
Core.SetConfig(sName, sValue)
Описание:
- Функция устанавливает настройку хаба sName в значение sValue.
- Однако, исключения составляют настройки sHubIP, iMainPort, sSubPorts, которые нельзя изменить.
- При изменении настройки sHubName или sTopic отправляется соответствующая команда. После изменения, настройки сохраняются.
- При изменении sHubBot и/или bRegMainBot — автоматически перерегистрируется бот.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Config[sName] = sValue
.
Core.GetLang
Core.GetLang(sName)
Описание:
- Функция возвращает "языковую" настройку sName.
В случае неудачи возвращает nil и сообщение об ошибке.
Core.SetLang
Core.SetLang(sName, sValue)
Описание:
- Функция устанавливает "языковую" настройку хаба sName в значение sValue.
Возвращаемые значения:
- true в случае успеха,
- nil и сообщение об ошибке в случае неудачи.
Core.SetHubState
Core.SetHubState(iNum)
Описание:
- Функция устанавливает состояние хаба.
iNum = nil
илиiNum = 0
— остановка хаба.iNum = 1
— рестарт хаба.- Остальные значения зарезервированы на будущее