Пользовательские команды

С чем сюда приходят

Встроен в strAImer: модуль ставится вместе с приложением, скачивать ничего не нужно. Он есть в списке Каталог модулей → Встроенные.

О чём эта страница

Чат-бот → Команды чата — это место, где живут пользовательские текстовые команды; сама страница называется Пользовательские команды, "Управление кастомными текстовыми командами для чата". Команда — это триггер, который пишут в чате, и ответ, который пишет бот, с подставленными в него переменными.

Команда срабатывает независимо от того, где вы её набрали: в чате площадки, в ленте чата на Панели управления или в окне отправки сообщения в приложении. Считается только настоящая команда — обычные ваши сообщения бота не запускают, поэтому сам с собой он разговаривать не начнёт.

Как настроить

На странице две вкладки, Команды и Переменные, каждая со своим счётчиком в скобках. Кнопка в правом верхнем углу соответствует вкладке, на которой вы находитесь — Добавить команду или Добавить переменную.

На свежей установке список не пуст: модуль кладёт одну готовую команду, чтобы было видно, что он работает. Она называется commands, отвечает на !commands, !help и !cmds и пишет «Commands: {commands}», то есть список всех ваших команд, с кулдауном 15 секунд и для всех. Правьте или удаляйте её как любую другую; удалённая, она не возвращается.

Команда

  1. Откройте Чат-бот → Команды чата, оставайтесь на вкладке Команды и нажмите Добавить команду. Форма называется Создание команды.
  2. Название команды (для вас) — заголовок, который вы узнаете в списке, пробелы допустимы: "Мой Discord сервер". Регистр сохраняется таким, как вы напечатали. Однословное название также служит триггером в чате; название с пробелами нельзя напечатать, поэтому такой команде нужен хотя бы один триггер, и сохранение без него будет отклонено.
  3. Триггеры, которые пишут зрители (через запятую) — слова, которые запускают команду, в подсказке показан формат: discord, ds. Первый из них — основной — именно он показывается в списке {commands} — при этом команда отвечает на все из них. Пишутся они без ! и через запятую. Регистр здесь тоже сохраняется.
  4. Срабатывание — Сообщение начинается с !команды или Слово в любом месте сообщения. Второй вариант помечается на карточке значком по слову.
  5. Ответ команды — что пишет бот, например, "Присоединяйся к нашему серверу, {user}!". Под полем написано "Нажмите на переменную, чтобы вставить её в ответ:" и ряд кнопок — {user}, {target}, {args}, {count}, {random:1-100}, {choose:a|b|c}, {randuser}, {channel}, {commands}, {auction_rules}, {time}, {date}, {math:}, {repeat:3:}. Нажатие вставляет её в позицию курсора. Над этим рядом три вкладки — Встроенные, Ваши и База знаний — так что ваши собственные переменные и ссылки-справки тоже в одном клике.
  6. Кулдаун (сек) начинается с 10, Кулдаун на зрителя (сек) с 0. Под ними стоит галочка Модераторы и стример без кулдауна.
  7. Доступные роли — Все, Сабы, VIP, Модераторы, Стример. На новой команде отмечены Все, и если не отметить ничего, тоже сохранится как Все.
  8. Отвечать только когда — условие, по умолчанию Всегда. Этот раздел объясняется ниже.
  9. Нажмите Сохранить или Отмена. Без названия и ответа форма ответит "Заполните название и ответ команды!" и останется открытой.
  10. Карточка озаглавлена только названием команды, рядом значок ролей и значок условия, если оно есть. Строка под ним содержит алиасы, цветные и с их !, затем идёт ответ; далее следуют кулдаун, кулдаун на зрителя и сколько раз команда сработала. В строке видны все триггеры, на которые команда откликается, — ваши плюс само название, если оно в одно слово; повтор показывается один раз. Переключатель отключает команду, не удаляя её; рядом Редактировать и Удалить, при удалении спрашивается "Удалить эту команду?".

Ваша собственная переменная

  1. Переключитесь на вкладку Переменные и нажмите Добавить переменную — форма называется Создание переменной.
  2. Имя переменной — только буквы, цифры и _; поле переводит введённое в нижний регистр и удаляет остальное. Подсказка под ним показывает результат: "Используется в ответах как {name}".
  3. Значения (по одному на строку) — в подсказке показаны три строки: пицца, суши, бургер. "При срабатывании команды подставится случайное значение из списка".
  4. Нажмите Сохранить. Повторяющееся имя отклоняется с сообщением "Переменная с таким именем уже существует!", незаполненная форма — "Укажите имя и хотя бы одно значение!".
  5. Карточка показывает {name}, сколько значений она содержит и сами значения. Редактировать снова открывает форму под заголовком Редактирование переменной с текущим именем и значениями в полях, так что значения исправляются, а не набираются заново. Удалить сначала предупреждает: "Удалить эту переменную? Команды, использующие её, перестанут её подставлять."

Ответ только при определённых условиях

Отвечать только когда содержит одно условие, а Всегда — отсутствие условия — это то, что получает новая команда.

Отвечать, если условие не выполнено — это второй ответ. Он использует те же переменные и ссылки-справки — и свой собственный ряд кнопок, так что нажатие там попадает в это поле, а не в то, что выше. "Сейчас нет аукциона — следующий в пятницу!" — это полный ответ. Оставьте его пустым, и команда ничего не скажет; молчащая команда не тратит свой кулдаун, так что следующий зритель, который спросит в нужный момент, всё равно получит ответ.

Сохранение условия с игрой с пустым полем игр отклоняется: условие никогда не сработает, и команда будет молчать вечно.

Ссылки-справки и правила аукциона

Ещё две вещи можно вставить в ответ, и они хранятся в одном месте, чтобы не переписывать.

Фигурные скобки одинарные, как и у любой другой переменной. Двойные скобки {{...}} всё ещё работают — это была старая запись, и старые тексты продолжают работать. Встроенные переменные читаются первыми, поэтому ссылка с именем time не заменит переменную {time}; просто избегайте называть ссылки именами переменных.

Справка

Справка по переменным вверху открывает Доступные переменные — каждую встроенную переменную с её значением и рабочим примером: {display_name}, {user.id}, {touser}, {args:0|default}, {count+10}, {channel} и остальные, с вашими собственными в конце списка.

Почему команда не отвечает

Промолчавшая команда оставляет строку с [Skipped] в консоли внизу окна приложения, Системная консоль логов. В той же строке в квадратных скобках названа причина:

  1. [NoMatch]: на это слово не отвечает ни одна команда. Проверьте, как написан триггер, и включён ли переключатель команды: выключенная команда считается отсутствующей. В лог попадают только слова, набранные с !; команда в режиме Слово в любом месте сообщения при несовпадении строки не оставляет.
  2. [Cooldown]: с прошлого ответа ещё не прошёл Кулдаун (сек), у новой команды это 10 секунд, или у этого зрителя ещё идёт Кулдаун на зрителя (сек). Кулдаун действует и на вас, поэтому одна и та же команда, набранная дважды подряд для проверки, ответит один раз. Чтобы проверять без ожидания, отметьте Модераторы и стример без кулдауна.
  3. [Permission]: у автора нет ни одной роли, отмеченной в Доступные роли. Старшие роли включают младшие: модератор проходит команду для VIP и сабов, а вы проходите любую.
  4. [Condition]: Отвечать только когда не выполнено, а Отвечать, если условие не выполнено пусто. Команда с условием Стрим идёт вне эфира молчит.

Если для команды с ! строки нет вовсе, сообщение до приложения не дошло: площадка не подключена в Подключения → Каналы или выключен сам модуль. Строка с [Success] при пустом чате значит, что ответ не приняла площадка. На YouTube обычная причина в боте: ответы уходят от него, и бот без входа в чат не отправляет ничего, а в логе стоит «No bot session». Выполните вход бота в Подключения → Боты.

Что она не может