Перейти к содержимому

Protectcord

Protectcord — это плагин для защиты от VPN/прокси, использующий продвинутый API для проверки, является ли IPv4/IPv6 VPN или прокси!

NeoForgeForgePaperPurpur
Загрузчики
NeoForgeForgePaperPurpur
Скачиваний на Modrinth
8,7 тыс.
Подписчиков на Modrinth
23
версий
365
Обновлён
10 сентября 202610 сент.
Опубликован
в 2025

Коротко о моде

Работает на NeoForge, Forge, Paper и Purpur
Для Minecraft 1.8.8–26.1.2
Последняя версия — 1.3.10 от 10 сентября 2026
Лицензия MIT — бесплатно
Где нужен
В игренеизвестноНа серверенеизвестно

Автор не указал, где нужен мод

Версии игры1.8.8–26.1.2
Описание переведено автоматическиПоказать оригинал (EN)

ProtectCord — Продвинутая защита по IP и модерация

Блокируй VPN, прокси, ботов и вредоносные подключения с помощью анализа IP в реальном времени. Встроенная модерация, фильтрация чата AutoMod, определение альтов и синхронизация нескольких серверов через MySQL — всё в одном лёгком плагине.

ProtectCord проверяет каждого входящего игрока по живой базе данных угроз ещё до того, как он попадёт на твой сервер. Вместе с полным набором инструментов модерации это единственное, что нужно, чтобы держать сервер в чистоте, а сообщество — в безопасности.

✨ Достижения

  • 2 300+ загрузок на Modrinth
  • 100 000+ запросов к API ProtectCord обработано
  • 46 уникальных серверов Minecraft одновременно используют ProtectCord
  • 203 защищённых игрока одновременно
  • 1 000+ уникальных пользователей Discord подтверждено
  • 3 000+ уникальных запросов к API в день
  • 555 серверов Discord используют @ProtectCord#0253
  • Следит за 100 000+ пользователями Discord

bStats: https://bstats.org/plugin/bukkit/Protectcord/24623


✨ Ключевые возможности

Защита по IP

  • 🛡️ Проверка IP в реальном времени — каждое подключение сверяется с живой базой данных угроз
  • 🚫 Блокировка VPN, прокси и Tor — мгновенно останавливай обходчиков банов и альтов
  • 🏢 Определение IP дата-центров — помечай и блокируй IP хостинг-провайдеров, используемые для ботов
  • ⚠️ Блокировка по уровню риска — настраиваемые уровни угрозы: UNKNOWN → LOW → MEDIUM → HIGH → CRITICAL
  • 🌍 Гео-блокировка — блокируй или добавляй в белый список целые страны по ISO-кодам
  • 👥 Ограничение аккаунтов на IP — ограничивай число одновременных подключений с одного IP
  • ✅ Умная система белого списка — обход защиты по имени игрока, UUID или IP

Набор для модерации

  • ⚡ Прогрессивная система предупреждений — настраиваемое авто-усиление от warn → kick → ban
  • ⏱️ Временные баны и муты — наказания с ограничением по времени и понятными длительностями (1h, 7d, 30d)
  • 🔇 Система мутов — постоянные муты с причинами, отслеживанием выдавшего и авто-истечением
  • 🔍 Определение альт-аккаунтов — находи альтов по общему IP (`/pc alts `) — только имена, никогда не сырые IP
  • 📋 История предупреждений — полные логи предупреждений с метками времени для любого игрока, онлайн или офлайн
  • 🧹 Очистка и удаление предупреждений — удаляй отдельные предупреждения по индексу или все сразу
  • 🗄️ Журнал аудита — автоматический лог всех действий модерации
  • 💾 Поддержка офлайн-игроков — предупреждай, бань, мучь или проверяй игроков, которых нет онлайн

AutoMod (фильтрация чата)

  • 🔗 Анти-ссылки — блокируй URL с поддержкой белого списка доменов
  • 📢 Анти-реклама — блокируй IP серверов и приглашения в Discord
  • 💬 Анти-спам — ограничение частоты с настраиваемым окном сообщений и определением дубликатов
  • 🤬 Анти-мат — свой чёрный список слов с поддержкой regex и исключениями для отдельных слов
  • 🔠 Анти-капс — настраиваемый порог капса в процентах
  • 🌊 Анти-флуд — блокируй повторяющийся флуд символами
  • 🔣 Анти-Unicode/Zalgo — блокируй невидимый текст и злоупотребление символами
  • ⚙️ Действия для каждого правила — каждое правило независимо настраивается на: BLOCK, WARN, KICK, MUTE или TEMPMUTE

Хранение и несколько серверов

  • 🗃️ Хранение в YAML-файлах — без настройки, работает из коробки
  • 🐬 Хранение в MySQL — полный бэкенд MySQL с пулом соединений HikariCP
  • 🌐 Синхронизация нескольких серверов — используй одну базу MySQL на всей сети; баны и муты действуют на каждом сервере
  • 🔄 Миграция на лету — переключайся между YAML и MySQL в любой момент через /pc migrate
  • 🧹 Очистка данных — удаляй старые предупреждения, баны, муты, логи IP, записи аудита и неактивных игроков через /pc purge

Инструменты для персонала

  • 📣 Оповещения персонала в игре — уведомления в реальном времени о киках, банах, предупреждениях, мутах, действиях automod и многом другом
  • 🎭 Маскировка IP — показывай персоналу замаскированные IP (192.168.1.*), пока они не получат право protectcord.ip.full
  • 📝 Жалобы игроков — игроки отправляют жалобы через /report; персонал уведомляется в игре и через Discord
  • 📊 Статистика API — проверяй использование, лимиты и состояние API через /pc stats
  • 🔎 Ручная проверка IP — /pc check <player|ip> для анализа угрозы по запросу

Платформа и интеграция

  • 🌐 Поддержка 6 платформ — Paper, Spigot, Folia, BungeeCord, Velocity и Forge
  • 📢 Discord Webhooks — Насыщенные эмбеды с флагом страны, городом, полями VPN/прокси/tor/риска, управлением по событиям, ограничением частоты и логикой повторных попыток
  • 📣 Вебхуки оповещений модерации — Отдельный канал вебхука для событий бана/предупреждения/мута/кика персонала
  • ⚡ 100% асинхронно — Все проверки IP неблокирующие; никакого влияния на главный поток

🎮 Поддерживаемые платформы

ПлатформаВерсииПримечания
Paper1.13 – 1.21+Рекомендуется для одиночных серверов
Spigot1.8.8 – 1.21+Полная поддержка старых версий
Folia1.19+Поддержка многопоточного планировщика
Velocity3.0+Рекомендуется для прокси-сетей
BungeeCord1.8.8 – 1.21+Совместим с Waterfall
Forge1.20.1+Только серверная сторона; проверки после входа

Совет для сетей: Устанавливайте только на прокси (Velocity/BungeeCord), чтобы защитить все бэкенд-серверы одним API-ключом.


📥 Быстрая настройка

1️⃣ Получите бесплатный API-ключ

  1. Посетите protectcord.com
  2. Создайте бесплатный аккаунт
  3. Сгенерируйте API-ключ в Dashboard → API Keys
  4. Бесплатный тариф включает 32 запроса/минуту — достаточно для большинства серверов

2️⃣ Установите плагин

  1. Скачайте подходящий JAR для вашей платформы с Modrinth
  2. Поместите его в папку plugins/ (или mods/ для Forge)
  3. Запустите сервер — конфиг создастся автоматически
  4. Добавьте ваш API-ключ в plugins/ProtectCord/config.yml
  5. Выполните /protectcord reload или перезапустите
  6. ✅ Ваш сервер теперь защищён

⚙️ Полный справочник по конфигурации

Файл конфигурации автоматически создаётся в plugins/ProtectCord/config.yml при первом запуске. Каждая опция объяснена ниже.

Velocity использует config.toml (та же структура, синтаксис TOML). Forge использует config/protectcord-forge.toml.


Настройки API

# Ваш API-ключ ProtectCord — получите бесплатно на https://protectcord.com/dashboard/api-keys
api-key: "YOUR_API_KEY_HERE"

# Сколько ждать (мс) ответа API перед отказом
api-timeout:
  connect: 15000   # Время на установку соединения (по умолчанию: 15с)
  read: 15000      # Время ожидания ответа после подключения (по умолчанию: 15с)

# Автоматическая повторная попытка для неудачных/просроченных запросов API
api-retry:
  max-attempts: 3      # Максимум повторных попыток перед разрешением/отказом игроку (1–5)
  initial-delay: 1000  # Ждать столько перед первой повторной попыткой (мс)
  max-delay: 5000      # Никогда не ждать дольше этого между попытками (мс)
  multiplier: 2.0      # Умножать задержку на этот коэффициент при каждой попытке (экспоненциальная задержка)

Идентификация сервера

# Используется для отслеживания игроков и идентификации в мультисерверной MySQL
server:
  name: "My Server"   # Дружественное имя — хранится в MySQL как server_id в каждой строке
  ip: ""              # Ваш публичный IP — оставьте пустым для автоопределения
  port: 25565         # Порт вашего сервера
  type: "spigot"      # Платформа: paper / spigot / bungeecord / velocity / forge / folia

Отслеживание игроков

# Отслеживание по UUID через API ProtectCord
player-tracking:
  enabled: true
  block-flagged-players: true    # Блокировать игроков, помеченных API как вредоносные
  block-inactive-players: false  # Блокировать игроков, чьи аккаунты помечены как неактивные

Защита IP

# Главный переключатель — установите false, чтобы отключить все проверки IP (не рекомендуется)
enable-ip-check: true

# Выберите, какие типы подключений блокировать
block-vpn: true         # Виртуальные частные сети (обходчики банов, альт-аккаунты)
block-proxy: true       # HTTP/SOCKS прокси и анонимайзеры
block-tor: true         # Выходные узлы Tor
block-datacenter: true  # IP хостинг-провайдеров (частый источник ботов)
block-bogon: true       # Недействительные, зарезервированные или немаршрутизируемые диапазоны IP

# Блокировка по уровню риска (опционально, работает в дополнение к флагам выше)
# Включите, чтобы блокировать по общей оценке угрозы вместо (или вместе с) отдельными флагами
enable-risk-level-blocking: false
blocked-risk-level: "HIGH"
# Уровни (каждый блокирует себя и всё выше):
#   LOW      — блокирует LOW, MEDIUM, HIGH, CRITICAL  (очень строго)
#   MEDIUM   — блокирует MEDIUM, HIGH, CRITICAL
#   HIGH     — блокирует HIGH, CRITICAL               (рекомендуется при включении)
#   CRITICAL — блокирует только CRITICAL              (очень мягко)

---

### Geographic Blocking

```yaml
geo-blocking:
  enabled: false
  mode: "blacklist"   # "blacklist" = блокировать перечисленные страны
                      # "whitelist" = разрешить ТОЛЬКО перечисленные страны (все остальные блокируются)
  countries:          # коды стран ISO 3166-1 alpha-2
    - "CN"
    - "RU"

Accounts Per IP

# Ограничить, сколько Minecraft-аккаунтов могут одновременно подключаться с одного IP
account-per-ip-limit:
  enabled: false
  max-accounts: 3          # Максимум одновременных подключений с одного IP
  enforcement: "BLOCK"     # "BLOCK"       — отклонить новое подключение
                           # "KICK_OLDEST" — кикнуть самую старую сессию, чтобы освободить место

Discord Webhook (Connection Events)

discord-webhook:
  enabled: false
  url: ""             # Вставьте сюда URL вашего Discord-вебхука
  timeout: 10000      # HTTP-таймаут для отправки вебхука (мс)

  # Повторять неудачные отправки вебхука
  retry:
    enabled: true
    max-attempts: 3       # Сколько раз повторять неудачную отправку (1–10)
    initial-delay: 1000   # Пауза перед первой попыткой повтора (мс)
    max-delay: 10000      # Максимальная пауза между повторами (мс)
    multiplier: 2.0       # Множитель экспоненциальной задержки

  # Ограничение частоты — Discord допускает ~5 запросов за 2 секунды на один вебхук
  rate-limit:
    max-per-second: 2   # Запросов в секунду (1–5)
    burst-limit: 5      # Максимальный всплеск до включения троттлинга

  # Какие события отправляют сообщение в вебхук
  events:
    denied: true          # Игрок был заблокирован ProtectCord
    accepted: false       # Игрок прошёл все проверки и зашёл (большой объём — по умолчанию выключено)
    whitelisted: true     # Зашёл игрок из вайтлиста
    error: true           # Во время проверки произошла ошибка API

  # Какие поля данных отображаются в embed
  data-fields:
    show-country: true
    show-country-flag: true   # 🇺🇸 эмодзи-флаг рядом с названием страны
    show-city: true
    show-vpn: true
    show-proxy: true
    show-datacenter: true
    show-tor: true
    show-mobile: true
    show-satellite: true
    show-crawler: true
    show-bogon: true
    show-risk-level: true
    show-abuser: true
    show-blacklisted: true
    show-company: true        # Название провайдера / хостинга
    show-company-risk: true

  # Настроить внешний вид каждого типа embed
  embeds:
    denied:
      title: "Connection Denied"
      emoji: "x"
      color: 15158332      # Десятичный RGB — красный
      footer: ""           # Необязательный текст футера
      thumbnail-url: ""    # Необязательная картинка в правом верхнем углу
    accepted:
      title: "Connection Accepted"
      emoji: "white_check_mark"
      color: 3066993       # Зелёный
      footer: ""
      thumbnail-url: ""
    whitelisted:
      title: "Whitelisted Player Joined"
      emoji: "white_circle"
      color: 16776960      # Жёлтый
      footer: ""
      thumbnail-url: ""
    error:
      title: "API Error"
      emoji: "warning"
      color: 15105570      # Оранжевый
      footer: ""
      thumbnail-url: ""

  # Продвинутое поведение вебхука
  advanced:
    validate-url-on-startup: true   # Отправить тестовый пинг при загрузке плагина
    log-failures: true              # Выводить неудачные отправки в консоль
    log-retries: true               # Выводить попытки повтора в консоль
    queue-size: 100                 # Максимум вебхуков в очереди до отбрасывания самых старых

Staff Alerts

# Уведомления в игре и Discord о действиях модерации
alerts:
  enabled: true

  # Рассылать онлайн-персоналу с правом protectcord.alerts
  in-game:
    enabled: true

  # Отдельный канал вебхука только для событий мод-команды
  discord-webhook:
    enabled: false
    url: ""

  # Точно настроить, какие действия вызывают уведомление
  events:
    kick: true
    ban: true
    unban: true
    warn: true
    clear-warnings: true
    remove-warning: true
    automod: true
    mute: true
    unmute: true
    tempmute: true
    tempban: true

---

### Система предупреждений

```yaml
warnings:

  # Автоматически принимать меры, когда игрок набирает достаточно предупреждений
  auto-action:
    enabled: true
    action: "BAN"      # "BAN" — перманентный бан | "KICK" — только кик
    threshold: 3       # Количество предупреждений до срабатывания авто-действия

  # Кикать игрока с сообщением "последнее предупреждение" при меньшем пороге
  kick-on-warn:
    enabled: true
    threshold: 2       # Кик при таком количестве предупреждений (до порога бана)

  # Предупреждения старше этого срока не учитываются при подсчёте порогов
  expiry:
    duration: "0"      # "0" = предупреждения никогда не истекают
                       # Примеры: "7d", "30d", "90d"

  # Уровни эскалации — переопределяют auto-action, когда включены
  # Каждый уровень срабатывает, когда количество предупреждений достигает `count`
  escalation:
    enabled: false
    tiers:
      - count: 1
        action: "WARN"
      - count: 2
        action: "TEMPMUTE"
        duration: "1h"
      - count: 3
        action: "TEMPBAN"
        duration: "1d"
      - count: 4
        action: "TEMPBAN"
        duration: "7d"
      - count: 5
        action: "BAN"
# Доступные действия: WARN, KICK, MUTE, TEMPMUTE, TEMPBAN, BAN
# Формат длительности: 30s, 10m, 1h, 7d, 30d

AutoMod (фильтрация чата)

automod:
  enabled: false           # Главный переключатель — должен быть true, чтобы работали любые правила

  # Действия применяются к сообщению, которое вызвало срабатывание правила.
  # Доступные действия для всех правил: BLOCK, WARN, KICK, MUTE, TEMPMUTE
  # Длительность TEMPMUTE задаётся ниже в tempmute-duration.
  tempmute-duration: "10m"

  # Блокировать ссылки в чате
  anti-link:
    enabled: true
    action: "BLOCK"
    whitelisted-domains:   # Эти домены пропускаются
      - "yourdomain.com"
      - "discord.gg/yourserver"

  # Блокировать спам (слишком много сообщений слишком быстро или слишком много дубликатов)
  anti-spam:
    enabled: true
    action: "BLOCK"
    max-messages: 5          # Максимум сообщений в пределах временного окна
    time-window-seconds: 10  # Размер скользящего окна в секундах
    max-duplicates: 3        # Максимум одинаковых сообщений в окне

  # Блокировать IP серверов и ссылки-приглашения Discord
  anti-advertising:
    enabled: true
    action: "BLOCK"
    block-server-ips: true       # Блокирует шаблоны вроде "play.someserver.net"
    block-discord-invites: true  # Блокирует ссылки discord.gg/...
    whitelisted-domains:
      - "yourdomain.com"
      - "discord.gg/yourserver"

  # Блокировать мат и пользовательские запрещённые слова
  anti-swear:
    enabled: false
    action: "BLOCK"
    use-regex: false          # Установите true, чтобы считать записи blocked-words регулярными выражениями
    blocked-words:
      - "badword1"
      - "badword2"
    whitelisted-words:        # Эти слова никогда не блокируются, даже если совпадают с шаблоном
      - "scrapbook"

  # Блокировать чрезмерный CAPS LOCK
  anti-caps:
    enabled: false
    action: "BLOCK"
    min-message-length: 5      # Игнорировать короткие сообщения (например, "OK", "YES")
    threshold-percent: 70.0    # Блокировать, если больше этого % букв заглавные

  # Блокировать флуд символами (aaaaaaaaaa, !!!!!!!!!)
  anti-flood:
    enabled: false
    action: "BLOCK"
    max-repeated-chars: 5   # Подряд идущих одинаковых символов до блокировки
    min-message-length: 3   # Игнорировать очень короткие сообщения

  # Блокировать злоупотребление Unicode и Zalgo-текст
  anti-unicode:
    enabled: false
    action: "BLOCK"
    block-zalgo: true           # Блокировать наложение комбинирующих диакритических знаков (z͎̤̙̘̭͇͠a̵͔͓l̡͔͍̦͚͙g̢͕̲͔͔͕ö̥́)
    max-unicode-percent: 50.0   # Блокировать, если больше этого % символов не-ASCII

Жалобы игроков

reports:
  enabled: true
  cooldown-seconds: 60       # Сколько игрок должен ждать между жалобами

  # Отправлять жалобы в канал Discord
  discord-webhook:
    enabled: false
    url: ""
    mention-role-id: ""      # Необязательно — пингануть роль при поступлении жалобы (например, "123456789")

  notify-staff: true         # Оповещать онлайн-персонал о жалобах с правом protectcord.alerts

  predefined-reasons: []     # Необязательный список причин, показываемых в автодополнении
                             # Пример: ["Hacking", "Spam", "Harassment", "Inappropriate name"]

---

### Хранение в базе данных

```yaml
database:
  type: "YAML"   # "YAML" — файловое хранилище (по умолчанию, настройка не требуется)
                 # "MYSQL" — MySQL/MariaDB (нужен для синхронизации между серверами)
  mysql:
    host: "localhost"
    port: 3306
    database: "protectcord"   # Имя базы данных (должна существовать до запуска)
    username: "root"
    password: ""
    table-prefix: "pc_"       # Все таблицы получают этот префикс (например, pc_warnings, pc_bans)

    # Настройки пула соединений HikariCP
    pool:
      max-pool-size: 10         # Максимум одновременных подключений к базе
      min-idle: 2               # Минимум простаивающих соединений, которые держим открытыми
      connection-timeout: 30000 # Максимальное ожидание соединения из пула (мс)
      idle-timeout: 600000      # Закрывать простаивающие соединения через это время (мс)
      max-lifetime: 1800000     # Пересоздавать соединения через это время (мс)

Маскировка IP

# Управляет тем, как IP-адреса отображаются персоналу в выводе команд
# Персонал с правом protectcord.ip.full всегда видит полный IP
ip-masking:
  enabled: false
  mask-format: "last-octet"
  # "last-octet"      → 192.168.1.*       (скрывает последний сегмент)
  # "last-two-octets" → 192.168.*.*       (скрывает последние два сегмента)
  # "full-mask"       → *.*.*.*           (скрывает всё)

Свои сообщения

# Все сообщения поддерживают цветовые коды &. Плейсхолдеры указаны для каждого сообщения.
messages:

  # Показывается игрокам, заблокированным проверкой IP — {reason}, {risk}
  connection-denied: |
    &c&lПодключение отклонено
    &7Ваше подключение было заблокировано ProtectCord.
    &7Причина: &c{reason}
    &7Уровень риска: &c{risk}

    &7Если вы считаете, что это ошибка, свяжитесь с персоналом сервера.

  # Показывается, когда API недоступен во время проверки
  api-error: |
    &c&lВременные проблемы с подключением
    &7Сейчас мы не можем проверить ваше подключение.
    &7Попробуйте позже.

  # Показывается игроку, заблокированному лимитом аккаунтов на IP — {max}, {current}
  account-limit-reached: |
    &c&lДостигнут лимит подключений
    &7Максимум аккаунтов на IP: &c{max}
    &7Текущих подключений с вашего IP: &c{current}

    &7Отключите другой аккаунт, прежде чем подключаться.

  # Показывается самой старой сессии, выброшенной при срабатывании KICK_OLDEST — {max}
  account-limit-kicked: |
    &c&lВы были отключены
    &7С вашего IP-адреса подключился новый аккаунт.
    &7Максимум аккаунтов на IP: &c{max}

  # Показывается, когда отслеживание игроков блокирует помеченного игрока — {flags}
  player-flagged: |
    &c&lПодключение отклонено
    &7Ваш аккаунт был помечен.
    &7Метки: &c{flags}
    &7Если вы считаете, что это ошибка, свяжитесь с персоналом сервера.

  # Показывается, когда отслеживание игроков блокирует неактивного игрока
  player-inactive: |
    &c&lПодключение отклонено
    &7Ваш аккаунт был деактивирован.
    &7Свяжитесь с персоналом сервера.

  # Показывается в чате игрокам из вайтлиста, обходящим проверку IP
  whitelist-bypass: "&aВы обошли проверку IP."

🎯 Команды и права

Алиасы: /pc, /protect

Основные команды

КомандаОписание
/pc reloadПерезагрузить конфиг, вайтлист и хранилище
/pc statsПосмотреть использование API и лимиты запросов
/pc check <player|ip>Анализ угрозы IP по запросу
/pc versionВерсия плагина и информация о платформе
/pc healthПроверка доступности API
/pc alertsВключить/выключить оповещения для персонала в игре

Команды вайтлиста

КомандаОписание
`/pc whitelist add player `Добавить игрока в вайтлист по имени
`/pc whitelist add uuid `Добавить в вайтлист по UUID
`/pc whitelist add ip `Добавить IP-адрес в вайтлист
`/pc whitelist remove `Удалить запись из вайтлиста
/pc listПоказать все записи вайтлиста

Команды модерации

КомандаОписание
`/pc kick [reason]`Кикнуть игрока в сети с информацией об IP
`/pc warn `Выдать предупреждение (автоматически повышается)
`/pc warnings `Просмотреть полную историю предупреждений
`/pc clear warning `Очистить все предупреждения
`/pc clear ban `Очистить запись о бане
`/pc remove warning [#]`Удалить конкретное предупреждение по индексу
`/pc ban `Забанить игрока навсегда
`/pc tempban `Временный бан (1h, 7d, 30d)
`/pc unban `Разбанить игрока
`/pc mute `Замутить игрока навсегда
`/pc tempmute `Временный мут
`/pc unmute `Размутить игрока
`/pc alts `Найти альт-аккаунты по общему IP

Команды хранилища

КомандаОписание
/pc migrate <yaml|mysql>Перенести все данные между хранилищами
`/pc purge `Удалить данные старше X дней

Типы очистки: warnings, bans, mutes, iplogs, auditlog, inactive, all

Команды игроков

КомандаОписание
`/report [player] `Пожаловаться на игрока (или отправить анонимную жалобу)

Права

ПравоОписаниеПо умолчанию
protectcord.adminВсе команды /pcOP
protectcord.bypassОбход проверок IP при входеfalse
protectcord.alertsПолучать внутриигровые оповещения для персоналаOP
protectcord.ip.fullВидеть немаскированные IP в выводе командOP
protectcord.automod.bypass.*Обход всех проверок AutoModfalse

⚡ Прогрессивная система предупреждений

Автоматически усиливает наказания в зависимости от количества предупреждений. Доступно два режима:

Простой режим (по умолчанию)

ПредупреждениеДействие
1-еПредупреждение в чате
2-еКик с сообщением «последнее предупреждение»
3-еБан навсегда

Режим уровней эскалации (настраиваемый)

Полностью настраиваемая эскалация — любая комбинация WARN → TEMPMUTE → TEMPBAN → BAN:

1 предупреждение  → Сообщение с предупреждением
2 предупреждения → Временный мут (1 час)
3 предупреждения → Временный бан (1 день)
4 предупреждения → Временный бан (7 дней)
5 предупреждений → Бан навсегда

Предупреждения могут истекать через заданное время (7d, 30d и т. д.), чтобы прошлое поведение не преследовало игроков вечно.


🤖 AutoMod — автоматическая фильтрация чата

Защитите свой чат, не прикладывая усилий. Каждое правило AutoMod работает независимо и может быть настроено на BLOCK, WARN, KICK, MUTE или TEMPMUTE для нарушителя.

ПравилоЧто оно ловит
Anti-LinkURL-адреса, с белым списком по доменам
Anti-AdvertisingIP других серверов, приглашения в Discord
Anti-SpamЧастота сообщений и дублирующийся флуд
Anti-SwearСвой список слов, с regex и исключениями
Anti-CapsИзбыток заглавных букв в процентах
Anti-FloodЗлоупотребление повторяющимися символами
Anti-UnicodeZalgo-текст и злоупотребление невидимыми символами

🔍 Обнаружение альт-аккаунтов

Находите игроков, обходящих баны или использующих несколько аккаунтов, одной командой:

/pc alts Notch
→ [ProtectCord] Альт-аккаунты для Notch:
  - Notch2 (общих IP: 2)
  - AltAccount99 (общих IP: 1)

IP никогда не отображаются в выводе альтов — персонал видит только имена игроков, что защищает приватность и при этом помогает выявлять обходчиков.


🗄️ MySQL и синхронизация между серверами

Храните все данные (предупреждения, баны, мюты, историю IP, журналы аудита) в MySQL вместо локальных YAML-файлов.

  • Все серверы используют одну базу данных — забанил на Factions, заблокирован на Survival
  • Пул соединений HikariCP — высокая производительность и потокобезопасность
  • Автосоздание таблиц — таблицы создаются при первом запуске
  • Отслеживание server_id — каждая запись фиксирует, с какого сервера пришло действие
  • Живая миграция — переход с YAML на MySQL (или обратно) через /pc migrate mysql

/pc migrate mysql → Migrated 47 players, 12 IP bans, 203 audit entries. → Update database.type in config.yml and run /pc reload.


---

## 🧹 Очистка данных

Держите базу данных в чистоте с помощью точных команд очистки:

/pc purge warnings 90 — удалить предупреждения старше 90 дней /pc purge bans 30 — удалить истёкшие баны старше 30 дней /pc purge mutes 30 — удалить истёкшие мьюты старше 30 дней /pc purge iplogs 365 — удалить историю IP старше 1 года /pc purge auditlog 90 — обрезать журнал аудита /pc purge inactive 180 — удалить записи игроков, не заходивших 6 месяцев /pc purge all 90 — выполнить всё вышеперечисленное


---

## 📢 Интеграция с Discord

### Вебхук подключений

Получайте подробный embed в Discord каждый раз, когда игрок заблокирован, допущен или добавлен в вайтлист:

- Страна с эмодзи-флагом, город, метки VPN/прокси/tor/датацентра/bogon, уровень риска, компания
- Переключатель для каждого события — получайте только те события, которые вам нужны
- Ограничение частоты, чтобы не превысить лимиты Discord
- Автоматический повтор с экспоненциальной задержкой

### Вебхук оповещений для персонала

Отдельный вебхук для модерации: баны, разбаны, предупреждения, кики, мьюты, действия AutoMod — чтобы ваша команда модераторов всегда знала, что происходит.

### Настройка за 30 секунд

1. Discord → Настройки сервера → Интеграции → Вебхуки → Новый вебхук → Скопировать URL
2. Добавьте в `config.yml`:
```yaml
discord-webhook:
  enabled: true
  url: "https://discord.com/api/webhooks/YOUR_WEBHOOK"
  1. /pc reload

🛡️ Как работает определение IP

IP каждого подключающегося игрока отправляется в API ProtectCord для проверки:

ПроверкаЧто определяет
VPNВиртуальные частные сети, используемые для сокрытия местоположения
ProxyHTTP/SOCKS-прокси и анонимайзеры
TorВыходные узлы Tor
DatacenterХостинг-провайдеры (частый источник ботов)
BogonНедействительные или зарезервированные диапазоны IP
Risk ScoreОценка на основе ИИ от UNKNOWN до CRITICAL
GeoСтрана происхождения (для гео-блокировки)

Автоматические обходы

Запрос к API не выполняется для:

  • Localhost (127.0.0.1, ::1)
  • Приватных сетей (192.168.x.x, 10.x.x.x, 172.16–31.x.x)
  • Игроков, UUID или IP из вайтлиста

❓ FAQ

Это бесплатно? Да. Бесплатный ключ API включает 32 запроса в минуту — достаточно для большинства серверов.

Это будет лагать мой сервер? Нет. Все проверки IP полностью асинхронны и никогда не блокируют основной поток.

Могут ли добросовестные игроки быть заблокированы? Редко. Используйте `/pc check , чтобы узнать причину, затем /pc whitelist add player . Также можно поднять blocked-risk-levelдоCRITICAL` для менее агрессивной блокировки.

Работает ли это в offline mode? Да. Плагин работает как в online, так и в offline mode.

А как насчёт прокси-сетей? Устанавливайте только на прокси (BungeeCord или Velocity). Все бэкенд-серверы автоматически защищаются одним плагином и одним ключом API.

Что если API недоступен? По умолчанию игрокам разрешено подключаться во время сбоев API. Это предотвращает блокировку всех и может быть изменено в конфиге.

Вы храните данные игроков? В API ProtectCord отправляются только IP-адреса. Никакие имена пользователей или UUID наружу не передаются. См. нашу политику конфиденциальности.

Могу ли я синхронизировать баны между серверами? Да — включите хранилище MySQL и направьте все серверы на одну базу данных. Баны и мьюты автоматически применяются по всей сети.


🔧 Решение проблем

"API KEY NOT CONFIGURED!" Получите ключ на protectcord.com/dashboard, добавьте его в config.yml, выполните /pc reload.

Игрок заблокирован ошибочно Выполните `/pc check , чтобы увидеть причину. Добавьте в вайтлист через /pc whitelist add player или понизьтеblocked-risk-level`.

Достигнут лимит запросов Бесплатный тариф: 32 запроса/мин (~1 игрок каждые 2 секунды). Решения: добавьте постоянных игроков в белый список, чтобы пропускать вызовы API, или установите только на прокси вместо всех бэкендов.

Discord webhook молчит Проверьте, что URL верный, enabled: true, события включены, и посмотрите консоль на ошибки.

Не удалось подключиться к MySQL Проверьте хост/порт/данные для входа в конфиге. Убедитесь, что у пользователя MySQL есть права CREATE TABLE. Проверьте консоль на сообщение об ошибке HikariCP.


🌐 Ссылки и поддержка


💖 Поддержать проект

  • ⭐ Подпишитесь на Modrinth
  • 💬 Присоединяйтесь к сообществу в Discord
  • 📝 Оставьте отзыв и поделитесь впечатлениями
  • 🐛 Сообщайте о багах или предлагайте идеи в Discord

Сделано с ❤️ для сообщества Minecraft — ProtectCord, потому что профилактика лучше модерации.

Частые вопросы

Как установить Protectcord?

Установите NeoForge под свою версию Minecraft, скачайте Protectcord под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Protectcord?

У Protectcord есть сборки для Minecraft 1.8.8–26.1.2.

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее