Бот предназначен для проведения рейтинговых игр через голосовые чаты в дискорд.
Язык: 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 |