Пользовательские команды
- как добавить команду в чат
- как сделать, чтобы бот подставлял имя зрителя в ответ
- как сделать, чтобы одна команда давала случайный ответ
- как разрешить использовать команду только модераторам
- как отключить команду, не удаляя её
- хочу, чтобы одна команда отвечала на несколько разных слов
- как сделать, чтобы команда работала только в определённой игре
- хочу, чтобы команда с правилами аукциона отвечала только во время аукциона
- как вставить ссылку на Discord в команду, чтобы не переписывать её везде
О чём эта страница
Чат-бот → Команды чата — это место, где живут пользовательские текстовые команды; сама страница называется Пользовательские команды, "Управление пользовательскими текстовыми командами для чата". Команда — это триггер, который пишут в чате, и ответ, который пишет бот, с подставленными в него переменными.
Как настроить
На странице две вкладки, Команды и Переменные, каждая со своим счётчиком в скобках. Кнопка в правом верхнем углу соответствует вкладке, на которой вы находитесь — Добавить команду или Добавить переменную.
Команда
- Откройте Чат-бот → Команды чата, оставайтесь на вкладке Команды и нажмите Добавить команду. Форма называется Создать команду.
- Название команды (для вас) — заголовок, который вы узнаете в списке, пробелы допустимы: "Мой Discord сервер". Регистр сохраняется таким, как вы напечатали. Однословное название также служит триггером в чате; название с пробелами нельзя напечатать, поэтому такой команде нужен хотя бы один триггер, и сохранение без него будет отклонено.
- Триггеры, которые пишут зрители (через запятую) — слова, которые запускают команду, в подсказке показан формат:
discord, ds. Первый из них — основной — именно он показывается в списке{commands}— при этом команда отвечает на все из них. Регистр здесь тоже сохраняется, и триггер, идентичный названию, не показывается на карточке дважды. - Срабатывание — Сообщение начинается с !команды или Слово в любом месте сообщения. Второй вариант помечается на карточке значком по слову.
- Ответ команды — что пишет бот, например, "Присоединяйся к нашему серверу, {user}!". Под полем написано "Нажмите на переменную, чтобы вставить её в ответ:" и ряд кнопок —
{user},{target},{args},{count},{random:1-100},{choose:a|b|c},{randuser},{time},{date},{math:},{repeat:3:}. Нажатие вставляет её в позицию курсора. Над этим рядом три вкладки — Встроенные, Ваши и База знаний — так что ваши собственные переменные и ссылки-справки тоже в одном клике. - Кулдаун (сек) начинается с 10, Кулдаун на зрителя (сек) с 0. Под ними стоит галочка Модераторы и стример без кулдауна.
- Доступные роли — Все, Сабы, VIP, Модераторы, Стример. На новой команде отмечены Все, и если не отметить ничего, тоже сохранится как Все.
- Отвечать только когда — условие, по умолчанию Всегда. Этот раздел объясняется ниже.
- Нажмите Сохранить или Отмена. Без названия и ответа форма ответит "Заполните название команды и ответ!" и останется открытой.
- Карточка озаглавлена только названием команды, рядом значок ролей и значок условия, если оно есть. Строка под ним содержит алиасы, цветные и с их
!, затем идёт ответ; далее следуют кулдаун, кулдаун на зрителя и сколько раз команда сработала. Алиас, идентичный названию, не показывается дважды. Переключатель отключает команду, не удаляя её; рядом Редактировать и Удалить, при удалении спрашивается "Удалить эту команду?".
Ваша собственная переменная
- Переключитесь на вкладку Переменные и нажмите Добавить переменную — форма называется Создать переменную.
- Имя переменной — только буквы, цифры и
_; поле переводит введённое в нижний регистр и удаляет остальное. Подсказка под ним показывает результат: "Используется в ответах как {name}". - Значения (по одному на строку) — в подсказке показаны три строки: пицца, суши, бургер. "Случайное значение из списка подставляется при срабатывании команды".
- Нажмите Сохранить. Повторяющееся имя отклоняется с сообщением "Переменная с таким именем уже существует!", незаполненная форма — "Укажите имя и хотя бы одно значение!".
- Карточка показывает
{name}, сколько значений она содержит и сами значения. Удалить сначала предупреждает: "Удалить эту переменную? Команды, использующие её, перестанут её подставлять."
Ответ только при определённых условиях
Отвечать только когда содержит одно условие, а Всегда — отсутствие условия — это то, что получает новая команда.
- Идёт одна из этих игр — появляется поле Игры (через запятую). Достаточно части названия, регистр не важен, так что
gtaподходит и под "GTA V", и под "GTA Online". Платформы пишут одну и ту же игру по-разному, поэтому перечислите каждое написание —GTA, Grand Theft Auto— и совпадение с любым из них достаточно. Категория читается с каждой платформы, которая сейчас в эфире. - Аукцион активен — пока в модуле аукциона есть активный, приостановленный или заблокированный аукцион.
- Стрим идёт / Стрим офлайн — статус стрима, как его сообщает модуль Статус стрима.
Отвечать, если условие не выполнено — это второй ответ. Он использует те же переменные и ссылки-справки — и свой собственный ряд кнопок, так что нажатие там попадает в это поле, а не в то, что выше. "Сейчас нет аукциона — следующий в пятницу!" — это полный ответ. Оставьте его пустым, и команда ничего не скажет; молчащая команда не тратит свой кулдаун, так что следующий зритель, который спросит в нужный момент, всё равно получит ответ.
Сохранение условия с игрой с пустым полем игр отклоняется: условие никогда не сработает, и команда будет молчать вечно.
Ссылки-справки и правила аукциона
Ещё две вещи можно вставить в ответ, и они хранятся в одном месте, чтобы не переписывать.
{discord},{boosty}и любое другое имя из Базы знаний в боковой панели. Измените ссылку там, и каждая команда подхватит. Имена, которых она не знает, остаются как есть,{discord}, так что опечатка видна, а не молчит. Вкладка База знаний под полем ответа перечисляет их все — ничего не нужно запоминать.{auction_rules}— описание, написанное в настройках аукциона, тот же текст, который видят зрители.
Фигурные скобки одинарные, как и у любой другой переменной. Двойные скобки {{...}} всё ещё работают — это была старая запись, и старые тексты продолжают работать. Встроенные переменные читаются первыми, поэтому ссылка с именем time не заменит переменную {time}; просто избегайте называть ссылки именами переменных.
Справка
Справка по переменным вверху открывает Доступные переменные — каждую встроенную переменную с её значением и рабочим примером: {display_name}, {user.id}, {touser}, {args:0|default}, {count+10}, {channel} и остальные, с вашими собственными в конце списка.
Что она не может
{channel}— это канал, в котором было написано сообщение, поэтому на мультиплатформенном стриме он различается по чату: ваше имя на Twitch в ответе на Twitch, ваше имя на Kick в ответе на Kick. Каждая платформа пишет его по-своему — у Kick вообще нет отображаемого имени, только хэндл, с которым вы вошли — поэтому не ожидайте, что все три будут совпадать в точности.{randuser}выбирает из зрителей, которые писали в этом чате за последние полчаса, а не из всех смотрящих: только Twitch предоставляет список присутствующих, и даже он обрезан, в то время как YouTube и Kick не предоставляют его вообще. Каждая платформа ведёт свой собственный список, поэтому ответ на Twitch никогда не упомянет зрителя с YouTube. Сразу после запуска приложения список пуст, и переменная возвращается к человеку, который запустил команду; одно сообщение в чате заполняет его. Сообщения вашего собственного бота исключены.- Команда отвечает текстом в чате. Звук, оверлеи и любые другие действия не являются частью этой страницы.
- Команды не привязаны к платформе или к определённому каналу: один список обслуживает чат.
- В списке нет поиска, сортировки и перетаскивания для изменения порядка — карточки остаются в порядке их создания.
- Пользовательская переменная — это список, из которого выбирается одна строка случайным образом. Она не хранит значения для каждого зрителя, не ведёт счётчик и не выполняет арифметические операции.
- Кулдауны считаются в секундах, на команду и на зрителя. Нет дневного лимита, и единственное исключение по роли — галочка Модераторы и стример без кулдауна.
- Команда принимает одно условие, а не несколько объединённых. Нет условия по времени суток и по количеству зрителей.