Введение
Это мой первый серьезный проект на Node.js без учебы в качестве бэкенд-разработчика. Я создал бота для частного сервера Discord, предназначенного для общения и ролевых игр.
Ссылки
- Git-репозиторий: github.com/koshacha/paimon-nestjs
В качестве основной библиотеки для работы с Discord.js с Nest.js я использовал эту.
Команды бота
Бот может делать следующее.
- Подсчитывает посты пользователей в определенных каналах (админ решает, в каких именно) и выводит рейтинг за все время, неделю или месяц.
- С помощью RANDOM.ORG выдает случайное число/действие.
- Поддерживает простую экономику сервера - позволяет пользователям сервера зарабатывать валюту и покупать на нее игровые предметы (которые могут быть созданы администратором)
Детали реализации
- Язык разработки: Node.js
- Фреймворк Nest.js
- База данных: Google Firebase
Прогресс в работе
В процессе работы я познакомился с Nest.js и Discord.js поближе, получил опыт разработки ботов. Я настроил Github Actions так, чтобы образ на Docker Hub обновлялся после изменений в основной ветке репозитория.
Скриншоты
Запуск бота с помощью docker compose
Прежде всего, вам нужно создать файл docker-compose.yml со следующим содержимым:
name: paimon
services:
paimon-bot:
ports:
- 8000:8000
volumes:
- .:/usr/src/app
env_file:
- .env
restart: always
logging:
options:
max-size: 1g
image: koshacha/paimon-bot:master
Вам также нужно будет создать файл .env и поместить в него следующее.
DISCORD_TOKEN=""
DEV_GUILD=""
GOOGLE_APPLICATION_CREDENTIAL=""
GOOGLE_PROJECT_ID=""
GOOGLE_CLIENT_EMAIL=""
GOOGLE_PRIVATE_KEY=""
Конечно, сначала вам нужно будет получить токен Discord и ключи Google Firebase.
Все, что вам останется сделать, так это запустить приложение с помощью команды:
docker-compose up -d