Функции Lua API в RusHub

Материал из MyDC's Wiki

(Перенаправлено с Функции LUA API в RusHub)
Перейти к: навигация, поиск

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.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 и сообщение об ошибке.


Функция устарела. Используйте вместо неё объект: Config[sName].


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 — рестарт хаба.
Остальные значения зарезервированы на будущее


См. также

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
RusHub
Инструменты
Портал