Бот Виселица в Discord
Несколько слов
После того как я набрался знаний на Java я решил создать какой-то сервис, который бы приносил пользу обычным людям. Мне пришло в голову сделать Hangman бот в Discord. Вообще это не первый мой бот который я сделал для этой платформы, но это сейчас самый успешный. Кстати бот полностью OpenSource: GitHub Hangman
Как реализован?
Саму логику поначалу я хотел найти в интернете, но путного там ничего не нашел и мне пришлось самому написать логику, кстати она доступна всем ТЫК. В момент создания бота я еще очень плохо понимал ООП и как создавать игры для несколько игроков, чтобы они не мешали друг другу. Но в процессе я быстро понял что можно игры хранить в коллекции:
ConcurrentMap<Long, Hangman> activeHangman = new ConcurrentHashMap<>();
Следующую проблему которую предстояло решить так это откуда брать слова для игр? В первую очередь я был нацелен на Английскую аудиторию и проблем с поиском слов не было. Был какой-то сервис у которого можно было одним запросом взять все слова, что и сделал. А вот потом я решил разделить код на микросервисы. Да у меня была запущена своя API для получения слов которая кстати доступна ТУТ.
Какие новые функции появились спустя 2 года?
- Теперь играть можно в соревновательном режиме против других игроков.
/competitive
- Появилась доска почёта:
/leadboard
- Полностью проведен рефакторинг кода. Много что сломалось, но починил быстро.
Как строились запросы?
GET: https://api.megoru.ru/api/word
Давай уже картинки показывай
С помощью команды /hg
любой игрок может создать игру. Кстати недавно добавил поддержку
совместной игры. /multi @user
А вот так засчитывает введенные буквы
Кстати логотип и сами картинки статуса игры делал на заказ у замечательной девушки.
Куда будет двигаться проект в будущем?
На самом деле проект уже можно сказать полностью сделан и добавлять туда почти нечего. Скорее всего это конец разработки и поддержки обновлениями. Нужно двигаться дальше, но не забывать с чего начинал свой путь.
23.05.2021