Discord bot that helps to organise online ChGK
ChGK - "What? Where? When?" game, popular in Russian-speaking countries and communities
The rest of README is in Russian. Maybe, someday I will translate it; creating a ticket for translation or sending me a patch would bring this day closer.
You can find a full manual for setting up this bot, Discord and OBS here
Delichon urbicum — городская ласточка
delichon-bot — бот-ласточка
После добавления бота на сервер можно начинать играть. Поскольку бот может быть подключен к различным серверам, до начала игры нужно указать ему, с каких столов в каких каналах собирать ответы. Каждый канал может быть либо каналом для ведущего, откуда происходит управление, либо каналом команды, поэтому после окончания игры необходимо указать боту, что игра завершилась.
В канале ведущего нужно дать команду !new <количество вопросов> <Название турнира>
, например, !new 36 Синхрон лайт 100500
. В ответ бот выдаст команду,
которую нужно ввести в каналах команд и две ссылки - одну для просмотра таблицы,
а вторую для редактирования. Редактирование доступно только во время игры.
В каналах команд нужно ввести выданную команду, которая выглядит примерно так:
!join iM6KdWrJkhNW
. После этого бот будет собирать ответы из этого чата.
Для синхронизации между трансляцией и ботом можно настроить задержку для бота
командой !config <delay>
; например, !config 8
установит задержку в 8 секунд.
Сообщения о вопросах и ответах будут отправляться в каналы команд через
указанное время после того, как они были отправлены в канал ведущему. Задержку
можно менять в любое время игры, по умолчанию она равна нулю. Действие задержки
не распространяется на «экстренные» команды !msg <сообщение>
и !reset <номер вопроса>
, сообщения с ними отправляются командам в тот же момент, когда ведущий
их вводит в своём канале.
В некоторых вариантах онлайн-ЧГК вопросы могут демонстрироваться на экране. Поскольку между чтением в трансляцию и приёмом этой трансляции есть некоторая задержка, имеет смысл использовать Discord для синхронизации.
Во время чтения ведущий может отправить текст вопроса в канал ведущего. Также
можно при помощи кнопки «плюс» добавить изображение-раздаточный материал. Это
сообщение отправится в каналы команд только после команды !q
. Если произошла
ошибка, до отправки сообщение можно заменить, отправив новое.
Команда !q
отправляет текст Вопрос <номер>
и сам вопросный материал (если он
есть) в каналы команд и начинает отсчёт времени. За десять секунд до окончания
минуты будет отправлено сообщение Осталось десять секунд
, при окончании минуты
— Время! Сдавайте ваши ответы
, а после десяти секунд на ввод — Все ответы должны быть сданы
. Для удобства эти сообщения дублируются и в канал ведущего.
Если вопрос является дуплетом или блицем, нужно использовать команду !q 20
или
!q 30
— с указанием времени в секундах на вопрос. Тогда после окончания
указанного времени в каналы придёт сообщение «Следующий мини-вопрос!» и можно
будет аналогично отправить следующий мини-вопрос (последний мини-вопрос можно
отправлять командой !q
).
После окончания минуты ведущий отправляет в свой канал текст ответа. После
получения сообщения о том, что все ответы должны быть сданы, он отправляет этот
ответ всем командой !a
. При этом ответ сохраняется в базе данных и
отображается при редактировании таблицы.
Команда получает текст в момент начала отсчёта минуты. Любой текст, который будет отправлен в чат после этого, бот-ласточка сочтёт ответом на вопрос (соберёт его и напишет об этом команде).
Для того, чтобы завершить турнир, ведущему нужно ввести команду !close
. После
этого возможность редактирования таблицы закроется, а всем командам снова будет
отправлена ссылка на таблицу для просмотра результатов.
Можно получить справку по доступным командам и текущем состоянии, введя команду
!help
. Бот, как правило, либо выдаёт какой-либо текст в ответ на сообщение,
либо устанавливает реакцию «глаза», если обработал сообщение.
Ведущий может отправить сообщение всем командам при помощи команды !msg <текст сообщения>
.
Командой !reset <вопрос>
(например, !reset 14
) ведущий может установить бота
в состояние для начала чтения вопроса с соответствующим номером (если, к
примеру, что-то пошло не так и засвечен ответ или ведущий запутался в командах).