Пространство имён
hook.add
Подписывает функцию на событие.Аргументы
Возвращает
Ничего.Пример
(event, id) заменяет обработчик. Это то,
что не даёт lua_reload <plugin> удвоить подписки.
Id уникален внутри плагина — два разных плагина спокойно называют свои "init".
Приём сетевых сообщений — msg:Name
Особый вид имени, без точки: hook.add("msg:TextMsg", id, fn) подписывается
на сетевые сообщения, которые движок отправляет клиентам — приёмная сторона
к msg.send. Свои подробности — у msg.
Порядок вызова
Обработчики идут в порядке загрузки плагинов. Обычно это неважно, но на отменяемом событии решает, кто выиграет:e:cancel() обрывает цепочку.
Числа приоритета в hook.add тут не помогли бы: как только их начнут ставить
все, они снова перестанут что-либо значить. Порядком распоряжается владелец
сервера — через addons/lua/load_order.txt:
lua_list и
lua_hooks.
Смотри также
hook.remove
Снимает подписку по имени события и id.Аргументы
Возвращает
Снимает только собственный обработчик плагина: один плагин не может тихо отписать чужой.
hook.run
Запускает своё событие плагина.Аргументы
Возвращает
Пример
hook.run запустить нельзя — это делает модуль.
Смотри также
hook.list
Возвращает список подписок в порядке вызова.Аргументы
Возвращает
Консольная обёртка —
lua_hooks.