События Lua API в RusHub
Материал из MyDC's Wiki
UID — идентификатор пользователя, который отослал команду. UID представляет из себя указатель на реальную структуру соединения пользователя (type(UID) = "userdata"). Введён с целью оптимизации выбора пользователя без нагрузки Lua-стека.
OnStartup
OnStartup()
Описание:
- Функция выполняется при старте скрипта.
Возвращаемое значение:
- любое.
OnExit
OnExit()
Описание:
- Функция выполняется при остановке скрипта.
Возвращаемое значение:
- любое.
OnError
OnError(sErrMsg)
Описание:
- Функция выполняется при ошибке в скрипте.
Возвращаемое значение:
- true или 1 — не останавливать скрипт при ошибке во время выполнения.
- Исключения составляют таймерные функции, которые останавливают скрипт при ошибке, дабы не загружать систему и не прийти к переполнению лога.
OnScriptError
OnScriptError(sScriptName, sErrMsg, bStoped)
Описание:
- Функция выполняется при возникновении ошибки в скрипте sScriptName. sErrMsg — сообщение с ошибкой. Флаг bStoped равен true если скрипт, в котором возникла ошибка, был остановлен, в противном случае флаг bStoped равен false.
- Функция не вызывается для текущего скрипта. Для отслеживания ошибок в текущем скрипте, нужно использовать функцию OnError(sErrMsg).
- Напомню, что по умолчанию скрипт отключается при ошибке, отключение скрипта можно предотвратить возвратом true в функции OnError этого скрипта.
Возвращаемое значение:
- true или 1 — не вызывать это событие в нижестоящих скриптах (т.е. прекращение действия события).
OnScriptStart
OnScriptStart(sScriptName)
Описание:
- Функция выполняется при старте скрипта sScriptName.
Возвращаемое значение:
- true или 1 — не вызывать это событие в нижестоящих скриптах (т.е. прекращение действия события).
OnScriptStop
OnScriptStop(sScriptName)
Описание:
- Функция выполняется при остановке скрипта sScriptName.
Возвращаемое значение:
- true или 1 — не вызывать это событие в ниже стоящих скриптах (т.е. прекращение действия события).
Последовательность входа/выхода
OnUserConnected
OnUserConnected(UID)
Описание:
- Функция выполняется при входе пользователя.
- Функция выполняется после отправки пользователю первичной команды $Lock и до любого другого действия на хабе.
- На данном этапе определён только IP-адрес, порт и MAC-адрес пользователя.
Возвращаемое значение:
- true или 1 — не отправлять при входе надпись: "Этот хаб работает под управлением...".
OnUserDisconnected
OnUserDisconnected(UID)
Описание:
- Функция выполняется после закрытия соединения с пользователем.
- Функция является последней функцией перед окончательным удалением соединения.
- На данном этапе определён только IP-адрес, порт и MAC-адрес пользователя, все остальные данные уже удалены.
Возвращаемое значение:
- любое.
OnUserEnter
OnUserEnter(UID)
Описание:
- Функция выполняется при окончательном входе пользователя, после добавления пользователя в списки.
- Функция является последним этапом входа на хаб.
Возвращаемое значение:
- любое.
OnUserExit
OnUserExit(UID)
Описание:
- Функция выполняется при выходе пользователя, перед удалением пользователя из списков.
- Функция является первым этапом выхода.
Возвращаемое значение:
- любое.
OnSupports
OnSupports(UID, sData)
Описание:
- Функция выполняется при обмене характеристиками между клиентом и сервером $Supports.
- Функция не будет выполняться, если клиент не поддерживает никаких дополнений и характеристик.
Возвращаемое значение:
- true или 1 — не отправлять характеристики хаба клиенту.
OnKey
OnKey(UID, sData)
Описание:
- Функция выполняется при получении ключа от клиента $Key.
Возвращаемое значение:
- true или 1 — проверять ключ.
OnValidateNick
OnValidateNick(UID, sData)
Описание:
- Функция выполняется после проверки ника и до проверки необходимости пароля $ValidateNick. Ник пользователя уже определён.
Возвращаемое значение:
- true или 1 — отправить запрос на получение пароля.
Позволяет проводить регистрацию посредством скриптов.
OnMyPass
OnMyPass(UID, sData)
Описание:
- Функция выполняется после поступления на хаб пароля от пользователя $MyPass.
Возвращаемое значение:
- true или 1 — вход оператора (отправка команды $LogedIn).
OnVersion
OnVersion(UID, sData)
Описание:
- Функция выполняется после поступления на хаб версии протокола $Version.
Возвращаемое значение:
- true или 1 — проверять равенство версии 1,0091.
OnGetNickList
OnGetNickList(UID, sData)
Описание:
- Функция выполняется до отсылки списка пользователей $GetNickList.
Возвращаемое значение:
- true или 1 — не отсылать список.
OnMyINFO
OnMyINFO(UID, sData)
Описание:
- Функция выполняется при получении хабом команды $MyINFO.
- Функция выполняется после всех проверок параметров и до рассылки всем пользователям.
Возвращаемое значение:
- return false, return nil, return 0 — безусловное выполнение события;
- return true, return 1 — блокировка события;
- return 2 — выполнение события и блокировка после обхода всех скриптов;
- return 3 — выполнение публичного события для всех соединений, кроме соединения, породившего это событие;
- return 4 — выполнение публичного события для всех соединений, кроме соединений, имеющих такой же IP-адрес, что и соединение, породившее это событие.
Примечание:
- Возвращаемое значение игнорируется при первой отправке на хаб MyINFO строки, так как в случае блокировки события пользователь будет скрыт (возможно эту политику следует пересмотреть (опустить) в дальнейшем).
OnChat
OnChat(UID, sData)
Описание:
- Функция выполняется при отправке в чат сообщения пользователем.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- return false, return nil, return 0 — безусловное выполнение события;
- return true, return 1 — блокировка события;
- return 2 — выполнение события и блокировка после обхода всех скриптов;
- return 3 — выполнение публичного события для всех соединений, кроме соединения, породившего это событие;
- return 4 — выполнение публичного события для всех соединений, кроме соединений, имеющих такой же IP-адрес, что и соединение, породившее это событие.
OnTo
OnTo(UID, sData)
Описание:
- Функция выполняется при отправке в сообщения приват $To.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- true или 1 — не отсылать сообщение.
OnConnectToMe
OnConnectToMe(UID, sData)
Описание:
- Функция выполняется при попытке активного соединения $ConnectToMe.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- true или 1 — не соединять пользователей.
OnRevConnectToMe
OnRevConnectToMe(UID, sData)
Описание:
- Функция выполняется при попытке пассивного соединения $RevConnectToMe.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- true или 1 — не соединять пользователей.
OnSearch
OnSearch(UID, sData)
Описание:
- Функция выполняется при поиске $Search.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- return false, return nil, return 0 — безусловное выполнение события;
- return true, return 1 — блокировка события;
- return 2 — выполнение события и блокировка после обхода всех скриптов;
- return 3 — выполнение публичного события для всех соединений, кроме соединения, породившего это событие;
- return 4 — выполнение публичного события для всех соединений, кроме соединений, имеющих такой же IP-адрес, что и соединение, породившее это событие.
OnSR
OnSR(UID, sData)
Описание:
- Функция выполняется при поступлении на хаб результатов пассивного поиска $SR.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- true или 1 — блокировать результаты поиска.
OnAny
OnAny(UID, sData, iType)
Описание:
- Функция выполняется при поступлении на хаб любой команды.
- Существующие на данный момент типы:
0 — $MultiSearch 1 — $MultiSearch Hub: 2 — $Search Hub: 3 — $Search 4 — $SR 5 — $SR UDP 6 — $MyINFO 7 — $Supports 8 — $Key 9 — $ValidateNick 10 — $Version 11 — $GetNickList 12 — Chat |
13 — $To 14 — $Quit 15 — $MyPass 16 — $ConnectToMe 17 — $RevConnectToMe 18 — $MultiConnectToMe 19 — $Kick 20 — $OpForceMove 21 — $GetINFO 22 — $MCTo 23 — $UserIP 24 — Ping 25 — Unknown |
Возвращаемое значение:
- true или 1 — блокировать команду.
OnUnknown
OnUnknown(UID, sData)
Описание:
- Функция выполняется при поступлении на хаб любой неизвестной команды.
Возвращаемое значение:
- true или 1 — не блокировать команду.
OnKick
OnKick(UID, sData)
Описание:
- Функция выполняется при поступлении на хаб команды кика $Kick.
Возвращаемое значение:
- любое.
OnOpForceMove
OnOpForceMove(UID, sData)
Описание:
- Функция выполняется при поступлении на хаб команды перенаправления $OpForceMove.
Возвращаемое значение:
- любое.
OnGetINFO
OnGetINFO(UID, sData)
Описание:
- Функция выполняется при поступлении на хаб команды $GetINFO.
Возвращаемое значение:
- true или 1 — не отсылать пользователю MyINFO запрошенного пользователя.
OnFlood
OnFlood(UID, iType, iNum)
Описание:
- Функция выполняется при обнаружении флуда со стороны пользователя. Может служить для установки бана за флуд или для разрешения флуда операторам хаба.
- Параметр iType указывает тип команды, которой флудили (см. OnAny).
- Параметр iNum указывает номер сработавшего правила: 1 или 2 (см. настройки антифлуда).
Возвращаемое значение:
- true или 1 — не отключать пользователя.
OnWebData
OnWebData(WebID, sData)
Описание:
- Функция выполняется при поступлении данных на веб-сервер.
Возвращаемое значение:
- true или 1 — не разъединять пользователя по окончанию работы данного события.
OnConfigChange
OnConfigChange(sName, sValue)
Описание:
- Функция выполняется при изменении настройки. Параметр sName — название измененной настройки, sValue — новое значение настройки.
Возвращаемое значение:
- любое.
OnMCTo
OnMCTo(UID, sData)
Описание:
- Функция выполняется при отправке приватного сообщения в чат $MCTo.
- Функция выполняется после всех проверок и до отправки.
Возвращаемое значение:
- true или 1 — не отсылать сообщение.
OnTimer
OnTimer(iId)
Описание:
- Функция выполняется при срабатывании таймера, если при создании таймера ему не была назначена другая функция.
- iId — идентификатор сработавшего таймера.