Обновить README.md
This commit is contained in:
704
README.md
704
README.md
@@ -1,521 +1,183 @@
|
|||||||
# 🛡️ Discord Anti-Nuke Бот
|
# 🛡️ Discord Anti-Nuke Бот
|
||||||
|
|
||||||
Полнофункциональный Discord бот для защиты сервера от краша, спама и вредоносных ботов. Бот автоматически отслеживает подозрительную активность, применяет наказания и восстанавливает удалённые элементы.
|
Полнофункциональный Discord бот для защиты сервера от краша, спама и вредоносных ботов. Бот автоматически отслеживает подозрительную активность, применяет наказания и восстанавливает удалённые элементы.
|
||||||
|
|
||||||
---
|
## 📖 Описание
|
||||||
|
|
||||||
## 📋 Содержание
|
- ✅ Автоматически защищает от массового удаления каналов и ролей
|
||||||
|
- ✅ Предотвращает добавление вредоносных ботов
|
||||||
1. [Описание](#описание)
|
- ✅ Блокирует спам и злоупотребление упоминаниями
|
||||||
2. [Функционал](#функционал)
|
- ✅ Отслеживает изменения названия и иконки сервера
|
||||||
3. [Установка](#установка)
|
- ✅ Восстанавливает удалённые элементы автоматически
|
||||||
4. [Настройка](#настройка)
|
- ✅ Ведёт подробные логи всех событий
|
||||||
5. [Запуск](#запуск)
|
- ✅ Применяет наказания нарушителям
|
||||||
6. [Модули](#модули)
|
|
||||||
7. [Команды](#команды)
|
---
|
||||||
8. [База данных](#база-данных)
|
|
||||||
9. [Логирование](#логирование)
|
## 🎯 Функционал
|
||||||
10. [Запуск на Pterodactyl](#запуск-на-pterodactyl)
|
|
||||||
11. [Решение проблем](#решение-проблем)
|
### Защита от краша сервера (Anti-Nuke)
|
||||||
|
|
||||||
---
|
- **Массовое удаление каналов**: Отслеживает количество удалённых каналов за период времени
|
||||||
|
- **Массовое удаление ролей**: Контролирует удаление ролей
|
||||||
## 📖 Описание
|
- **Массовое создание каналов/ролей**: Предотвращает создание большого количества элементов
|
||||||
|
- **Изменение сервера**: Защищает от изменения названия и иконки сервера
|
||||||
Discord Anti-Nuke бот — это комплексная система защиты сервера, которая:
|
- **Выдача админских прав**: Отслеживает массовую выдачу административных прав
|
||||||
|
|
||||||
- ✅ Автоматически защищает от массового удаления каналов и ролей
|
### Защита от ботов (Anti-Bot)
|
||||||
- ✅ Предотвращает добавление вредоносных ботов
|
|
||||||
- ✅ Блокирует спам и злоупотребление упоминаниями
|
- Автоматическая проверка всех добавляемых ботов
|
||||||
- ✅ Отслеживает изменения названия и иконки сервера
|
- Сравнение с белым списком разрешённых ботов
|
||||||
- ✅ Восстанавливает удалённые элементы автоматически
|
- Бан неразрешённых ботов и пригласивших их пользователей
|
||||||
- ✅ Ведёт подробные логи всех событий
|
|
||||||
- ✅ Применяет наказания нарушителям
|
### Защита от спама (Anti-Spam)
|
||||||
|
|
||||||
---
|
- Контроль частоты сообщений
|
||||||
|
- Защита от злоупотребления упоминаниями (@everyone, @here)
|
||||||
## 🎯 Функционал
|
- Автоматический мут или бан спамеров
|
||||||
|
|
||||||
### Защита от краша сервера (Anti-Nuke)
|
### Автоматическое восстановление
|
||||||
|
|
||||||
- **Массовое удаление каналов**: Отслеживает количество удалённых каналов за период времени
|
- Сохранение данных каналов и ролей перед удалением
|
||||||
- **Массовое удаление ролей**: Контролирует удаление ролей
|
- Автоматическое восстановление удалённых элементов
|
||||||
- **Массовое создание каналов/ролей**: Предотвращает создание большого количества элементов
|
- Сохранение всех разрешений и настроек
|
||||||
- **Изменение сервера**: Защищает от изменения названия и иконки сервера
|
|
||||||
- **Выдача админских прав**: Отслеживает массовую выдачу административных прав
|
---
|
||||||
|
|
||||||
### Защита от ботов (Anti-Bot)
|
## ⚙️ Настройка
|
||||||
|
|
||||||
- Автоматическая проверка всех добавляемых ботов
|
### 1. Получение Discord Bot Token
|
||||||
- Сравнение с белым списком разрешённых ботов
|
|
||||||
- Бан неразрешённых ботов и пригласивших их пользователей
|
1. Перейдите на [Discord Developer Portal](https://discord.com/developers/applications)
|
||||||
|
2. Создайте новое приложение или выберите существующее
|
||||||
### Защита от спама (Anti-Spam)
|
3. Перейдите в раздел "Bot"
|
||||||
|
4. Нажмите "Reset Token" и скопируйте токен
|
||||||
- Контроль частоты сообщений
|
5. Включите следующие привилегии:
|
||||||
- Защита от злоупотребления упоминаниями (@everyone, @here)
|
- **SERVER MEMBERS INTENT** (Privileged Gateway Intents)
|
||||||
- Автоматический мут или бан спамеров
|
- **MESSAGE CONTENT INTENT** (Privileged Gateway Intents)
|
||||||
|
6. В разделе "OAuth2" → "URL Generator":
|
||||||
### Автоматическое восстановление
|
- Выберите scope: `bot`, `applications.commands`
|
||||||
|
- Выберите permissions: `Administrator` (или минимальные: Ban Members, Manage Channels, Manage Roles, Manage Server, View Audit Log)
|
||||||
- Сохранение данных каналов и ролей перед удалением
|
- Скопируйте URL и откройте в браузере для добавления бота на сервер
|
||||||
- Автоматическое восстановление удалённых элементов
|
|
||||||
- Сохранение всех разрешений и настроек
|
### 2. Получение ID сервера
|
||||||
|
|
||||||
---
|
1. Включите режим разработчика в Discord (Настройки → Расширенные → Режим разработчика)
|
||||||
|
2. Правый клик по серверу → "Копировать ID сервера"
|
||||||
## 🚀 Установка
|
|
||||||
|
### 3. Настройка базы данных
|
||||||
### Требования
|
|
||||||
|
Создайте базу данных MySQL/MariaDB:
|
||||||
- Node.js 18+
|
|
||||||
- MySQL или MariaDB
|
```sql
|
||||||
- Discord Bot Token
|
CREATE DATABASE antinuke CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
```
|
||||||
### Шаги установки
|
|
||||||
|
Или используйте существующую базу данных. Бот автоматически создаст необходимые таблицы при первом запуске.
|
||||||
1. **Клонирование или загрузка проекта**
|
|
||||||
|
### 4. Редактирование config.yml
|
||||||
```bash
|
|
||||||
cd /path/to/project
|
Откройте `src/config/config.yml` и заполните:
|
||||||
```
|
|
||||||
|
```yaml
|
||||||
2. **Установка зависимостей**
|
bot:
|
||||||
|
token: "ВАШ_ТОКЕН_БОТА"
|
||||||
```bash
|
guild_id: "ID_ВАШЕГО_СЕРВЕРА"
|
||||||
npm install
|
prefix: "!"
|
||||||
```
|
log_channel_id: "ID_КАНАЛА_ДЛЯ_ЛОГОВ" # Необязательно
|
||||||
|
|
||||||
3. **Настройка конфигурации**
|
database:
|
||||||
|
type: "mysql"
|
||||||
Скопируйте файл `src/config/config.example.yml` в `src/config/config.yml`:
|
host: "localhost"
|
||||||
|
port: 3306
|
||||||
```bash
|
user: "root"
|
||||||
cp src/config/config.example.yml src/config/config.yml
|
password: "ваш_пароль"
|
||||||
```
|
name: "antinuke"
|
||||||
|
|
||||||
Отредактируйте `src/config/config.yml` и заполните все необходимые параметры (см. раздел [Настройка](#настройка)).
|
limits:
|
||||||
|
max_channel_creates: 3
|
||||||
4. **Сборка проекта**
|
max_role_deletes: 2
|
||||||
|
max_channel_deletes: 2
|
||||||
```bash
|
max_role_creates: 5
|
||||||
npm run build
|
max_spam_messages: 5
|
||||||
```
|
max_mentions: 3
|
||||||
|
window_seconds: 10
|
||||||
---
|
spam_window_seconds: 3
|
||||||
|
|
||||||
## ⚙️ Настройка
|
whitelist:
|
||||||
|
admins:
|
||||||
### 1. Получение Discord Bot Token
|
- "ID_ДОВЕРЕННОГО_АДМИНА_1"
|
||||||
|
- "ID_ДОВЕРЕННОГО_АДМИНА_2"
|
||||||
1. Перейдите на [Discord Developer Portal](https://discord.com/developers/applications)
|
bots:
|
||||||
2. Создайте новое приложение или выберите существующее
|
- "ID_РАЗРЕШЁННОГО_БОТА_1"
|
||||||
3. Перейдите в раздел "Bot"
|
|
||||||
4. Нажмите "Reset Token" и скопируйте токен
|
punishment:
|
||||||
5. Включите следующие привилегии:
|
ban_user: true
|
||||||
- **SERVER MEMBERS INTENT** (Privileged Gateway Intents)
|
ban_bot: true
|
||||||
- **MESSAGE CONTENT INTENT** (Privileged Gateway Intents)
|
ban_inviter: true
|
||||||
6. В разделе "OAuth2" → "URL Generator":
|
restore_changes: true
|
||||||
- Выберите scope: `bot`, `applications.commands`
|
mute_on_spam: true
|
||||||
- Выберите permissions: `Administrator` (или минимальные: Ban Members, Manage Channels, Manage Roles, Manage Server, View Audit Log)
|
mute_duration_minutes: 10
|
||||||
- Скопируйте URL и откройте в браузере для добавления бота на сервер
|
```
|
||||||
|
|
||||||
### 2. Получение ID сервера
|
### 5. Настройка белого списка
|
||||||
|
|
||||||
1. Включите режим разработчика в Discord (Настройки → Расширенные → Режим разработчика)
|
Добавьте ID доверенных администраторов и разрешённых ботов в секцию `whitelist` конфигурации. Эти пользователи и боты не будут забанены системой защиты.
|
||||||
2. Правый клик по серверу → "Копировать ID сервера"
|
|
||||||
|
---
|
||||||
### 3. Настройка базы данных
|
|
||||||
|
## 💬 Команды
|
||||||
Создайте базу данных MySQL/MariaDB:
|
|
||||||
|
Все команды доступны через Slash Commands (/) в Discord.
|
||||||
```sql
|
|
||||||
CREATE DATABASE antinuke CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
### `/whitelist add user_id:<ID> type:<admin|bot>`
|
||||||
```
|
Добавляет пользователя или бота в белый список.
|
||||||
|
|
||||||
Или используйте существующую базу данных. Бот автоматически создаст необходимые таблицы при первом запуске.
|
**Пример:**
|
||||||
|
```
|
||||||
### 4. Редактирование config.yml
|
/whitelist add user_id:123456789012345678 type:admin
|
||||||
|
```
|
||||||
Откройте `src/config/config.yml` и заполните:
|
|
||||||
|
### `/whitelist remove user_id:<ID> type:<admin|bot>`
|
||||||
```yaml
|
Удаляет пользователя или бота из белого списка.
|
||||||
bot:
|
|
||||||
token: "ВАШ_ТОКЕН_БОТА"
|
### `/whitelist list`
|
||||||
guild_id: "ID_ВАШЕГО_СЕРВЕРА"
|
Показывает текущий белый список.
|
||||||
prefix: "!"
|
|
||||||
log_channel_id: "ID_КАНАЛА_ДЛЯ_ЛОГОВ" # Необязательно
|
### `/antinuke status`
|
||||||
|
Отображает статус системы защиты, текущие лимиты и настройки.
|
||||||
database:
|
|
||||||
type: "mysql"
|
### `/antinuke test`
|
||||||
host: "localhost"
|
Проверяет работу системы защиты.
|
||||||
port: 3306
|
|
||||||
user: "root"
|
### `/config reload`
|
||||||
password: "ваш_пароль"
|
Перезагружает конфигурацию из файла `config.yml` без перезапуска бота.
|
||||||
name: "antinuke"
|
|
||||||
|
---
|
||||||
limits:
|
|
||||||
max_channel_creates: 3
|
## 📝 Логирование
|
||||||
max_role_deletes: 2
|
|
||||||
max_channel_deletes: 2
|
Бот ведёт логи в двух местах:
|
||||||
max_role_creates: 5
|
|
||||||
max_spam_messages: 5
|
1. **Консоль**: Все события выводятся в консоль с цветовой кодировкой
|
||||||
max_mentions: 3
|
2. **Файл**: Логи сохраняются в файл (настраивается в `config.yml`)
|
||||||
window_seconds: 10
|
|
||||||
spam_window_seconds: 3
|
### Уровни логирования
|
||||||
|
|
||||||
whitelist:
|
- `error`: Критические ошибки
|
||||||
admins:
|
- `warn`: Предупреждения
|
||||||
- "ID_ДОВЕРЕННОГО_АДМИНА_1"
|
- `info`: Информационные сообщения
|
||||||
- "ID_ДОВЕРЕННОГО_АДМИНА_2"
|
- `debug`: Отладочная информация
|
||||||
bots:
|
|
||||||
- "ID_РАЗРЕШЁННОГО_БОТА_1"
|
### Настройка логирования
|
||||||
|
|
||||||
punishment:
|
В `config.yml`:
|
||||||
ban_user: true
|
|
||||||
ban_bot: true
|
```yaml
|
||||||
ban_inviter: true
|
logging:
|
||||||
restore_changes: true
|
enabled: true
|
||||||
mute_on_spam: true
|
file_path: "./logs/bot.log"
|
||||||
mute_duration_minutes: 10
|
level: "info"
|
||||||
```
|
max_file_size: "10m"
|
||||||
|
max_files: 5
|
||||||
### 5. Настройка белого списка
|
```
|
||||||
|
|
||||||
Добавьте ID доверенных администраторов и разрешённых ботов в секцию `whitelist` конфигурации. Эти пользователи и боты не будут забанены системой защиты.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🏃 Запуск
|
|
||||||
|
|
||||||
### Режим разработки
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### Продакшн режим
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
### Использование PM2 (рекомендуется)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install -g pm2
|
|
||||||
npm run build
|
|
||||||
pm2 start dist/index.js --name antinuke-bot
|
|
||||||
pm2 save
|
|
||||||
pm2 startup
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔧 Модули
|
|
||||||
|
|
||||||
### Core модули
|
|
||||||
|
|
||||||
#### `logger.ts`
|
|
||||||
Система логирования на основе Winston. Поддерживает логирование в консоль и файл с ротацией.
|
|
||||||
|
|
||||||
#### `database.ts`
|
|
||||||
Модуль работы с MySQL/MariaDB. Обеспечивает подключение, создание таблиц и операции с данными.
|
|
||||||
|
|
||||||
#### `configLoader.ts`
|
|
||||||
Загрузка и валидация конфигурации из YAML файла.
|
|
||||||
|
|
||||||
### Модули защиты
|
|
||||||
|
|
||||||
#### `antiNuke.ts`
|
|
||||||
Основной модуль защиты от краша сервера. Отслеживает массовые операции через Audit Log и сравнивает с лимитами.
|
|
||||||
|
|
||||||
#### `antiBot.ts`
|
|
||||||
Проверяет всех добавляемых ботов и сравнивает с белым списком.
|
|
||||||
|
|
||||||
#### `antiSpam.ts`
|
|
||||||
Контролирует частоту сообщений и упоминаний, применяет наказания за спам.
|
|
||||||
|
|
||||||
#### `autoRestore.ts`
|
|
||||||
Сохраняет данные каналов и ролей перед удалением и восстанавливает их при необходимости.
|
|
||||||
|
|
||||||
#### `punishment.ts`
|
|
||||||
Выполняет наказания: бан, кик, мут. Отправляет сообщения в лог-канал.
|
|
||||||
|
|
||||||
#### `whitelist.ts`
|
|
||||||
Управление белым списком администраторов и ботов.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 💬 Команды
|
|
||||||
|
|
||||||
Все команды доступны через Slash Commands (/) в Discord.
|
|
||||||
|
|
||||||
### `/whitelist add user_id:<ID> type:<admin|bot>`
|
|
||||||
Добавляет пользователя или бота в белый список.
|
|
||||||
|
|
||||||
**Пример:**
|
|
||||||
```
|
|
||||||
/whitelist add user_id:123456789012345678 type:admin
|
|
||||||
```
|
|
||||||
|
|
||||||
### `/whitelist remove user_id:<ID> type:<admin|bot>`
|
|
||||||
Удаляет пользователя или бота из белого списка.
|
|
||||||
|
|
||||||
### `/whitelist list`
|
|
||||||
Показывает текущий белый список.
|
|
||||||
|
|
||||||
### `/antinuke status`
|
|
||||||
Отображает статус системы защиты, текущие лимиты и настройки.
|
|
||||||
|
|
||||||
### `/antinuke test`
|
|
||||||
Проверяет работу системы защиты.
|
|
||||||
|
|
||||||
### `/config reload`
|
|
||||||
Перезагружает конфигурацию из файла `config.yml` без перезапуска бота.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🗄️ База данных
|
|
||||||
|
|
||||||
### Структура таблиц
|
|
||||||
|
|
||||||
#### `events_log`
|
|
||||||
Хранит все события, отслеживаемые ботом.
|
|
||||||
|
|
||||||
| Поле | Тип | Описание |
|
|
||||||
|------|-----|----------|
|
|
||||||
| id | VARCHAR(36) | UUID события |
|
|
||||||
| user_id | VARCHAR(20) | ID пользователя |
|
|
||||||
| action | VARCHAR(100) | Тип действия |
|
|
||||||
| details | TEXT | Детали события |
|
|
||||||
| timestamp | DATETIME | Время события |
|
|
||||||
|
|
||||||
#### `restored_items`
|
|
||||||
Хранит данные для восстановления каналов и ролей.
|
|
||||||
|
|
||||||
| Поле | Тип | Описание |
|
|
||||||
|------|-----|----------|
|
|
||||||
| id | INT | ID записи |
|
|
||||||
| type | ENUM | Тип: channel или role |
|
|
||||||
| old_data | JSON | Данные элемента |
|
|
||||||
| restored_at | DATETIME | Время восстановления |
|
|
||||||
|
|
||||||
#### `punishments`
|
|
||||||
Лог всех применённых наказаний.
|
|
||||||
|
|
||||||
| Поле | Тип | Описание |
|
|
||||||
|------|-----|----------|
|
|
||||||
| id | INT | ID записи |
|
|
||||||
| user_id | VARCHAR(20) | ID пользователя |
|
|
||||||
| reason | TEXT | Причина наказания |
|
|
||||||
| punishment_type | VARCHAR(50) | Тип наказания |
|
|
||||||
| timestamp | DATETIME | Время наказания |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📝 Логирование
|
|
||||||
|
|
||||||
Бот ведёт логи в двух местах:
|
|
||||||
|
|
||||||
1. **Консоль**: Все события выводятся в консоль с цветовой кодировкой
|
|
||||||
2. **Файл**: Логи сохраняются в файл (настраивается в `config.yml`)
|
|
||||||
|
|
||||||
### Уровни логирования
|
|
||||||
|
|
||||||
- `error`: Критические ошибки
|
|
||||||
- `warn`: Предупреждения
|
|
||||||
- `info`: Информационные сообщения
|
|
||||||
- `debug`: Отладочная информация
|
|
||||||
|
|
||||||
### Настройка логирования
|
|
||||||
|
|
||||||
В `config.yml`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
logging:
|
|
||||||
enabled: true
|
|
||||||
file_path: "./logs/bot.log"
|
|
||||||
level: "info"
|
|
||||||
max_file_size: "10m"
|
|
||||||
max_files: 5
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🐳 Запуск на Pterodactyl
|
|
||||||
|
|
||||||
### 1. Создание яйца (Egg)
|
|
||||||
|
|
||||||
Если у вас есть доступ к панели Pterodactyl, создайте новое яйцо для Node.js приложения.
|
|
||||||
|
|
||||||
### 2. Настройка сервера
|
|
||||||
|
|
||||||
1. Создайте новый сервер в Pterodactyl
|
|
||||||
2. Выберите яйцо Node.js
|
|
||||||
3. Установите следующие переменные окружения (если нужно):
|
|
||||||
- `NODE_VERSION`: `18` или выше
|
|
||||||
|
|
||||||
### 3. Установка зависимостей
|
|
||||||
|
|
||||||
В консоли сервера выполните:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Настройка конфигурации
|
|
||||||
|
|
||||||
Отредактируйте `src/config/config.yml` через файловый менеджер или через консоль:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nano src/config/config.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5. Сборка и запуск
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6. Автозапуск
|
|
||||||
|
|
||||||
Pterodactyl автоматически перезапустит бота при перезагрузке сервера, если процесс завершится.
|
|
||||||
|
|
||||||
### Альтернатива: использование PM2
|
|
||||||
|
|
||||||
Если хотите использовать PM2 на Pterodactyl:
|
|
||||||
|
|
||||||
1. Установите PM2 в консоли сервера:
|
|
||||||
```bash
|
|
||||||
npm install -g pm2
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Создайте файл `ecosystem.config.js`:
|
|
||||||
```javascript
|
|
||||||
module.exports = {
|
|
||||||
apps: [{
|
|
||||||
name: 'antinuke-bot',
|
|
||||||
script: 'dist/index.js',
|
|
||||||
instances: 1,
|
|
||||||
autorestart: true,
|
|
||||||
watch: false,
|
|
||||||
max_memory_restart: '500M',
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Запустите через PM2:
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
pm2 start ecosystem.config.js
|
|
||||||
pm2 save
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔍 Решение проблем
|
|
||||||
|
|
||||||
### Бот не запускается
|
|
||||||
|
|
||||||
**Проблема**: Ошибка при запуске бота
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Проверьте правильность токена в `config.yml`
|
|
||||||
2. Убедитесь, что бот добавлен на сервер с необходимыми правами
|
|
||||||
3. Проверьте подключение к базе данных
|
|
||||||
4. Убедитесь, что Node.js версии 18+
|
|
||||||
|
|
||||||
### Ошибки подключения к БД
|
|
||||||
|
|
||||||
**Проблема**: `Error: connect ECONNREFUSED`
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Проверьте, что MySQL/MariaDB запущен
|
|
||||||
2. Проверьте правильность хоста, порта, пользователя и пароля
|
|
||||||
3. Убедитесь, что база данных существует
|
|
||||||
4. Проверьте права доступа пользователя БД
|
|
||||||
|
|
||||||
### Бот не реагирует на события
|
|
||||||
|
|
||||||
**Проблема**: Бот онлайн, но не обрабатывает события
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Проверьте, что `guild_id` в конфиге соответствует ID сервера
|
|
||||||
2. Убедитесь, что бот имеет необходимые права на сервере
|
|
||||||
3. Проверьте, что включены необходимые Intents в Discord Developer Portal
|
|
||||||
4. Проверьте логи на наличие ошибок
|
|
||||||
|
|
||||||
### Команды не работают
|
|
||||||
|
|
||||||
**Проблема**: Slash Commands не отображаются или не работают
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Подождите несколько минут после запуска (команды регистрируются асинхронно)
|
|
||||||
2. Проверьте права бота (нужны права на использование Slash Commands)
|
|
||||||
3. Убедитесь, что бот имеет права Administrator или необходимые минимальные права
|
|
||||||
4. Попробуйте перезапустить бота
|
|
||||||
|
|
||||||
### Бот банит легитимных пользователей
|
|
||||||
|
|
||||||
**Проблема**: Бот банит администраторов или разрешённых ботов
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Добавьте ID администраторов в `whitelist.admins` в конфиге
|
|
||||||
2. Добавьте ID разрешённых ботов в `whitelist.bots`
|
|
||||||
3. Перезагрузите конфигурацию командой `/config reload` или перезапустите бота
|
|
||||||
|
|
||||||
### Восстановление не работает
|
|
||||||
|
|
||||||
**Проблема**: Удалённые каналы/роли не восстанавливаются
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Убедитесь, что `punishment.restore_changes: true` в конфиге
|
|
||||||
2. Проверьте права бота (нужны права на создание каналов и ролей)
|
|
||||||
3. Проверьте логи на наличие ошибок восстановления
|
|
||||||
4. Убедитесь, что данные сохраняются в БД (проверьте таблицу `restored_items`)
|
|
||||||
|
|
||||||
### Высокое использование памяти
|
|
||||||
|
|
||||||
**Проблема**: Бот потребляет много памяти
|
|
||||||
|
|
||||||
**Решения**:
|
|
||||||
1. Уменьшите `max_files` в настройках логирования
|
|
||||||
2. Уменьшите `max_file_size` для логов
|
|
||||||
3. Используйте PM2 с ограничением памяти
|
|
||||||
4. Регулярно очищайте старые записи из БД
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📞 Поддержка
|
|
||||||
|
|
||||||
Если у вас возникли проблемы, не описанные в этом руководстве:
|
|
||||||
|
|
||||||
1. Проверьте логи бота в файле или консоли
|
|
||||||
2. Проверьте логи базы данных
|
|
||||||
3. Убедитесь, что все зависимости установлены: `npm install`
|
|
||||||
4. Проверьте версию Node.js: `node --version` (должна быть 18+)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📄 Лицензия
|
|
||||||
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🙏 Благодарности
|
|
||||||
|
|
||||||
Бот создан с использованием:
|
|
||||||
- [discord.js](https://discord.js.org/) - Discord API библиотека
|
|
||||||
- [mysql2](https://github.com/sidorares/node-mysql2) - MySQL драйвер
|
|
||||||
- [winston](https://github.com/winstonjs/winston) - Система логирования
|
|
||||||
- [js-yaml](https://github.com/nodeca/js-yaml) - Парсер YAML
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Версия**: 1.0.0
|
|
||||||
**Последнее обновление**: 2024
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user