Триггеры
В этой статье поговорим об их назначениях и различиях.
Общий Триггер
Общие триггеры помогают избежать дублирования реакций. Если один и тот же набор действий (например, 5 реакций) нужно выполнять в разных местах (например, по команде /cmd и при нажатии кнопки в меню), вы можете вынести эти действия в отдельный «Общий триггер». Затем вместо того, чтобы копировать все 5 реакций, вы просто одной реакцией runTrigger запускаете этот общий триггер.
Это удобно: если нужно изменить логику, вы правите код в одном месте, а не во всех триггерах, где он используется.
Глобальный Триггер
Бывает ситуация, когда вам нужно, чтобы какое-то действие выполнялось при любом обращении пользователя к боту, даже если он просто написал любое случайное сообщение.
Пример: Вы хотите собирать статистику всех действий пользователей, но при этом у вас не создано ни одной текстовой команды для их обработки. Обычные и базовые триггеры в этом случае не сработают, потому что для них нет подходящего условия.
Решение — Глобальный триггер. Он работает как универсальный перехватчик и выполняет ваши реакции при любом событии от пользователя, независимо от того, найдётся для него другой подходящий триггер или нет.
Типы 🔗Глобальных Триггеров
- Глобальный Триггер До
- Глобальный Триггер После
Триггер ДО — выполняется всегда первым, до выполнения любого другого триггера. Триггер После — соответственно выполняется после выполнения всех остальных триггеров.
Пример
Пользователь запустил команду /my_command, в которой есть триггер с реакциями, тогда будут выполнены следующие триггеры в указанном порядке:
1 Глобальный Триггер До 2 Триггер Команды /cmd 3 Глобальный Триггер После
Обратите внимание, Глобальные триггеры будет выполнены не только в ответ на действие со стороны пользователя, но при поступлении любого события в бота.