Files
gggg/README.md
2025-11-27 22:00:48 +02:00

7.2 KiB
Raw Permalink Blame History

🛡️ Discord Anti-Nuke Бот

Полнофункциональный Discord бот для защиты сервера от краша, спама и вредоносных ботов. Бот автоматически отслеживает подозрительную активность, применяет наказания и восстанавливает удалённые элементы.

📖 Описание

  • Автоматически защищает от массового удаления каналов и ролей
  • Предотвращает добавление вредоносных ботов
  • Блокирует спам и злоупотребление упоминаниями
  • Отслеживает изменения названия и иконки сервера
  • Восстанавливает удалённые элементы автоматически
  • Ведёт подробные логи всех событий
  • Применяет наказания нарушителям

🎯 Функционал

Защита от краша сервера (Anti-Nuke)

  • Массовое удаление каналов: Отслеживает количество удалённых каналов за период времени
  • Массовое удаление ролей: Контролирует удаление ролей
  • Массовое создание каналов/ролей: Предотвращает создание большого количества элементов
  • Изменение сервера: Защищает от изменения названия и иконки сервера
  • Выдача админских прав: Отслеживает массовую выдачу административных прав

Защита от ботов (Anti-Bot)

  • Автоматическая проверка всех добавляемых ботов
  • Сравнение с белым списком разрешённых ботов
  • Бан неразрешённых ботов и пригласивших их пользователей

Защита от спама (Anti-Spam)

  • Контроль частоты сообщений
  • Защита от злоупотребления упоминаниями (@everyone, @here)
  • Автоматический мут или бан спамеров

Автоматическое восстановление

  • Сохранение данных каналов и ролей перед удалением
  • Автоматическое восстановление удалённых элементов
  • Сохранение всех разрешений и настроек

⚙️ Настройка

1. Получение Discord Bot Token

  1. Перейдите на Discord Developer Portal
  2. Создайте новое приложение или выберите существующее
  3. Перейдите в раздел "Bot"
  4. Нажмите "Reset Token" и скопируйте токен
  5. Включите следующие привилегии:
    • 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:

CREATE DATABASE antinuke CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Или используйте существующую базу данных. Бот автоматически создаст необходимые таблицы при первом запуске.

4. Редактирование config.yml

Откройте src/config/config.yml и заполните:

bot:
  token: "ВАШ_ТОКЕНОТА"
  guild_id: "ID_ВАШЕГО_СЕРВЕРА"
  prefix: "!"
  log_channel_id: "ID_КАНАЛА_ДЛЯ_ЛОГОВ"  # Необязательно

database:
  type: "mysql"
  host: "localhost"
  port: 3306
  user: "root"
  password: аш_пароль"
  name: "antinuke"

limits:
  max_channel_creates: 3
  max_role_deletes: 2
  max_channel_deletes: 2
  max_role_creates: 5
  max_spam_messages: 5
  max_mentions: 3
  window_seconds: 10
  spam_window_seconds: 3

whitelist:
  admins:
    - "ID_ДОВЕРЕННОГО_АДМИНА_1"
    - "ID_ДОВЕРЕННОГО_АДМИНА_2"
  bots:
    - "ID_РАЗРЕШЁННОГООТА_1"

punishment:
  ban_user: true
  ban_bot: true
  ban_inviter: true
  restore_changes: true
  mute_on_spam: true
  mute_duration_minutes: 10

5. Настройка белого списка

Добавьте ID доверенных администраторов и разрешённых ботов в секцию whitelist конфигурации. Эти пользователи и боты не будут забанены системой защиты.


💬 Команды

Все команды доступны через 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 без перезапуска бота.


📝 Логирование

Бот ведёт логи в двух местах:

  1. Консоль: Все события выводятся в консоль с цветовой кодировкой
  2. Файл: Логи сохраняются в файл (настраивается в config.yml)

Уровни логирования

  • error: Критические ошибки
  • warn: Предупреждения
  • info: Информационные сообщения
  • debug: Отладочная информация

Настройка логирования

В config.yml:

logging:
  enabled: true
  file_path: "./logs/bot.log"
  level: "info"
  max_file_size: "10m"
  max_files: 5