Telegram Quest Bot by JetCoder
237
Данный бот использует файл игрового сценария (скрипт) для автоматического проведения квестов. Он написан на Java и может работать в любой операционной системе с установленным пакетом Java Runtime Environment версии Java 8 и выше, включая Windows, Linux и Mac OS.
Руководствуясь программой скрипта, бот может отправлять игрокам текстовые задания, изображения, аудиозаписи и другие файлы, выдавать подсказки, принимать ответы (коды), подсчитывать время, вести статистику и т.д. Бот автоматически сохраняет состояние игры в виде файлов сохранений и загружает их при последующем запуске. Подробная инструкция по настройке бота и созданию игровых сценариев.
/bot
├── bot.cfg
├── game_files
├── game_script.cfg
├── libs
│ ├── log4j-api-2.7.jar
│ ├── log4j-core-2.7.jar
│ ├── slf4j-simple-1.7.30.jar
│ └── telegrambots-6.0.1-jar-with-dependencies.jar
├── logs
├── qbot.jar
└── saves
Файл bot.cfg содержит параметры авторизации бота на сервере Telegram, а также параметры прокси-сервера (если он используется).
Файл game_script.cfg содержит программу сценария игры (можно загрузить через Telegram или подключить локальный, добавив -v $(pwd)/game_script.cfg:/qbot/game_script.cfg при создании контейнера). Это текстовый файл в формате UTF8, использующий специальный синтаксис, напоминающий тэговую разметку на Интернет-форумах.
Каталог game_files содержит загружаемые файлы игрового сценария (картинки заданий, звук, документы и т.п.). Имена этих файлов указываются в качестве значений параметров [ФАЙЛ] в скрипте (см. ниже). Необходимо особо отметить файл fids.bin, который создается ботом в этой папке автоматически – этот файл содержит сохраненные идентификаторы файлов в системе Telegram. При отправке любого файла ботом игрокам, вначале он попадает на сервер, и сервер создает ссылку (идентификатор) для этого файла, позволяя впоследствии не загружать его повторно, если он будет отправлен вновь (другому игроку или другой команде). Эти идентификаторы как раз и сохраняются в файле fids.bin, чтобы не повторять загрузку игровых файлов при каждом запуске бота.
Каталог saves создается автоматически и содержит файлы сохранений игры. Имена файлов представляют собой увеличивающиеся номера, но наиболее старые файлы удаляются ботом автоматически. Сохранения создаются при переходе команд на новые уровни, а также через каждые 5 минут. При запуске бот загружает самое последнее сохранение.
Каталог logs создается автоматически и содержит журнал событий (лог) бота. Следует учесть, что файл лога обновляется с небольшой задержкой (3-5 минут). Время записей лога соответствует часам сервера, на котором запущен бот, поэтому для удобства чтения логов можно заранее настроить местный часовой пояс в операционной системе (если используется удаленный сервер).
Каталог libs содержит исполняемые файлы библиотек. Они необходимы для работы бота.
Для создания бота в Telegram, в первую очередь, нужно зарегистрировать его в системе и получить данные для авторизации (имя и токен). Для этого нужно сделать следующее:
23402934:ARBNYTry8LAHSDrcffY9dzXV7FA) – необходимо записать эти параметры, их нужно будет указать в файле bot.cfg.[BOT_USERNAME]
имя_бота
[BOT_TOKEN]
токен_бота
[ADMIN_PASSWORD]
пароль_организатора
mkdir -p {game_files,saves,logs}docker run -d \
--name qbot1 \
--restart=unless-stopped \
-v $(pwd)/bot.cfg:/bot/bot.cfg:ro \
-v $(pwd)/game_files:/bot/game_files \
-v $(pwd)/saves:/bot/saves \
-v $(pwd)/logs:/bot/logs \
-v /etc/localtime:/etc/localtime:ro \
jeffscrum/qbot:1.12.0
Content type
Image
Digest
sha256:92277b4d1…
Size
68.3 MB
Last updated
about 2 years ago
docker pull jeffscrum/qbot:1.12.0