Бот предназначен для проведения рейтинговых игр через голосовые чаты в дискорд.
Язык: TypeScript Сервер: Node.ts База данных: MongoDb Api Discord: Discord.js
- Склонируйте репозиторий
git clone https://github.com/Razdva122/Discord-bot.git- Установите зависимости
cd Discord-bot
npm install-
Бота нужно создать и добавить в панели приложений Discord, после этого нужно добавить его на свой сервер. Подробно этот пункт описан в гайде Создание бота Discord Bot с помощью Node.js - Шаг 1
-
Инициализация MongoDb Atlas (Бесплатной облачной версии) Гайд по созданию на английском языке или Видео также на английском. На выходе вы получите строку для соединения формата
mongodb+srv://<Юзернейм для mongodb>:<Пароль для mongodb>@<Путь к серверу>/<Название коллекции для mongodb>Эти поля потребуются для настройки бота. -
Настройте бота Приватные настройки должны быть в файле src/consts/private.ts. Он должен экспортировать обьект формата
export const settings = {
mongoUser: {
user: 'Юзернейм для mongodb',
password: 'Пароль для mongodb',
},
mongoPath: 'Путь к серверу',
mongoDB: 'Название коллекции для mongodb',
botSecretToken: 'Ключ для Discord Api',
}Общие настройки хранятся в файле src/consts/index.ts. Подробнее в секции Общие настройки. Для первоначального запуска бота достаточно поменять
export const mainOwnerID = 'ID вашего пользователя из Discord';- Запуск бота
npm start- Инициализация на сервере
На сервере владелец бота должен его инициализировать написав команду.
!initServer [Роль админов] [Роль верифицированных пользователей]Админы имеют максимальный доступ.
Верифицированные пользователи имеют права для создания и окончания игр.
Общие настройки хранятся в файле src/consts/index.ts.
| Перменная | Назначение | Тип |
|---|---|---|
| defaultRating | Начальный рейтинг игрока | Number |
| usersInLeaderboard | Количестов игроков в лидерборде | Number |
| maxNicknameForLeadeboardLength | Максимальная длина никнейма юзера для таблицы | Number |
| additionalRoles | Дополнительные роли | Object<(key: string): value: string> |
| ratingChange -> crewmate | Изменение рейтинга при игре за crewmate | `Object<(key: [win |
| ratingChange -> impostor | Изменение рейтинга при игре за impostor | `Object<(key: [win |
| accessLevel | Числовое значение уровня доступа от 0 до N. | Object<(key: string): value: number> |
| helpLevel | Текстовое описания для уровня доступа | Object<(key: number): value: string> |
| accessLevelToMethods | Уровень доступа к команде | Object<(key: Имя команды): value: number> |
| helpText | Общее описание команд | Object<(key: Имя команды): value: string> |
| commandHelp | Подсказка по команде, которая выводится при запросе ![Имя команды] help | Object<(key: Имя команды): value: string> |
| amountOfResets | Количество сбросов рейтинга: default - для всех и количество для дополнительных ролей | Object<(key: string): value: number> |
| mainOwnerID | ID владельца бота с максимальным уровнем доступа | String |