Условия достижений

Из чего собирается условие достижения чата - слова и медиа, счётчики активности, время, роли и ограничения на число получателей.

Условие это последняя часть при создании достижения. Бот сверяет его с каждым сообщением участника, и как только всё сходится, ачивка выдаётся сама, а участник видит карточку в ответ на своё сообщение.

Условия пишутся словами. Часть проверок работает сама по себе, часть принимает значение через двоеточие: слово:печенька, уровень:10, время:00:00-06:00. Регистр не важен, подчёркивания читаются как пробелы, у большинства условий есть английский вариант.

Сообщение

УсловиеКогда сработает
слово:печенькаВ сообщении встречается этот текст, где угодно внутри
точно:доброе утроСообщение совпадает целиком
длина:500Сообщение не короче указанного числа символов
фотоСообщение с картинкой
стикерСтикер
голосовоеГолосовое или аудио
кружокВидеосообщение
ответ:@юзерОтвет конкретному участнику, можно указать цифровой ид
упоминание:@юзерУпоминание участника в тексте
регекс:^ку+$Совпадение по шаблону, если простого слова не хватает

Активность участника

Здесь сравнение идёт «не меньше указанного»: уровень:10 сработает и на десятом уровне, и на двадцатом.

УсловиеЧто проверяет
сообщений:1000Всего сообщений в чате
сообщений за день:100Сообщений за сегодня
сообщений за неделю:500Сообщений за неделю
сообщений за месяц:2000Сообщений за месяц
уровень:10Уровень участника
xp:5000Накопленный опыт
репутация:50Репутация
стрик:30Дней подряд с сообщениями
дней в чате:365Сколько дней участник состоит в чате

Время, дни и роли

УсловиеЧто проверяет
время:00:00-06:00Время сообщения по часовому поясу чата, интервал через полночь тоже работает: 23:00-02:00
день:пнДень недели, можно списком пн,ср,пт или диапазоном пт-вс
месяц:мартМесяц, можно номером 3 и списком июнь,июль,август
роль:модераторЕсть ли у участника такая роль, по коду или по названию

Кому и сколько раз

УсловиеЧто делает
первый ктоДостанется только первому, кто выполнит условие
лимит:10Выдаётся, пока получивших меньше указанного числа
кд:3600Пауза между выдачами в секундах
ручнаяАвтоматически не выдаётся никогда, только руками через -ач дать

Выдачи руками тоже считаются: они увеличивают счётчик получивших, а значит влияют и на первый кто, и на лимит.

Несколько условий сразу

Условия соединяются словами и (все должны сойтись) и или (достаточно любого). Вместо слов можно писать & и |.

слово:кофе и время:06:00-09:00
фото или стикер или кружок

Смешивать и с или в одном условии не стоит: стоит появиться хотя бы одному или, и вся строка читается как «достаточно любого». Для сложной логики проще сделать два достижения с разными условиями.

Незнакомую строку бот считает словом-триггером: условие печенька работает так же, как слово:печенька. Это удобно для самых простых ачивок, но если вы ждали другого поведения, проверьте написание.