Protectcord
Protectcord — это плагин для защиты от VPN/прокси, использующий продвинутый API для проверки, является ли IPv4/IPv6 VPN или прокси!
- Загрузчики
- NeoForgeForgePaperPurpur
- Скачиваний на Modrinth
- 8,7 тыс.
- Подписчиков на Modrinth
- 23
- версий
- 365
- Обновлён
- 10 сентября 202610 сент.
- Опубликован
- в 2025
Коротко о моде
Автор не указал, где нужен мод
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 неблокирующие; никакого влияния на главный поток
🎮 Поддерживаемые платформы
| Платформа | Версии | Примечания |
|---|---|---|
| Paper | 1.13 – 1.21+ | Рекомендуется для одиночных серверов |
| Spigot | 1.8.8 – 1.21+ | Полная поддержка старых версий |
| Folia | 1.19+ | Поддержка многопоточного планировщика |
| Velocity | 3.0+ | Рекомендуется для прокси-сетей |
| BungeeCord | 1.8.8 – 1.21+ | Совместим с Waterfall |
| Forge | 1.20.1+ | Только серверная сторона; проверки после входа |
Совет для сетей: Устанавливайте только на прокси (Velocity/BungeeCord), чтобы защитить все бэкенд-серверы одним API-ключом.
📥 Быстрая настройка
1️⃣ Получите бесплатный API-ключ
- Посетите protectcord.com
- Создайте бесплатный аккаунт
- Сгенерируйте API-ключ в Dashboard → API Keys
- Бесплатный тариф включает 32 запроса/минуту — достаточно для большинства серверов
2️⃣ Установите плагин
- Скачайте подходящий JAR для вашей платформы с Modrinth
- Поместите его в папку
plugins/(илиmods/для Forge) - Запустите сервер — конфиг создастся автоматически
- Добавьте ваш API-ключ в
plugins/ProtectCord/config.yml - Выполните
/protectcord reloadили перезапустите - ✅ Ваш сервер теперь защищён
⚙️ Полный справочник по конфигурации
Файл конфигурации автоматически создаётся в 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, 30dAutoMod (фильтрация чата)
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 | Все команды /pc | OP |
protectcord.bypass | Обход проверок IP при входе | false |
protectcord.alerts | Получать внутриигровые оповещения для персонала | OP |
protectcord.ip.full | Видеть немаскированные IP в выводе команд | OP |
protectcord.automod.bypass.* | Обход всех проверок AutoMod | false |
⚡ Прогрессивная система предупреждений
Автоматически усиливает наказания в зависимости от количества предупреждений. Доступно два режима:
Простой режим (по умолчанию)
| Предупреждение | Действие |
|---|---|
| 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-Link | URL-адреса, с белым списком по доменам |
| Anti-Advertising | IP других серверов, приглашения в Discord |
| Anti-Spam | Частота сообщений и дублирующийся флуд |
| Anti-Swear | Свой список слов, с regex и исключениями |
| Anti-Caps | Избыток заглавных букв в процентах |
| Anti-Flood | Злоупотребление повторяющимися символами |
| Anti-Unicode | Zalgo-текст и злоупотребление невидимыми символами |
🔍 Обнаружение альт-аккаунтов
Находите игроков, обходящих баны или использующих несколько аккаунтов, одной командой:
/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"/pc reload
🛡️ Как работает определение IP
IP каждого подключающегося игрока отправляется в API ProtectCord для проверки:
| Проверка | Что определяет |
|---|---|
| VPN | Виртуальные частные сети, используемые для сокрытия местоположения |
| Proxy | HTTP/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.
🌐 Ссылки и поддержка
- 🌍 Сайт: protectcord.com
- 📖 Документация API: api.protectcord.com
- 🎫 Панель управления: protectcord.com/dashboard
- 💬 Discord: protectcord.com/discord
💖 Поддержать проект
- ⭐ Подпишитесь на Modrinth
- 💬 Присоединяйтесь к сообществу в Discord
- 📝 Оставьте отзыв и поделитесь впечатлениями
- 🐛 Сообщайте о багах или предлагайте идеи в Discord
Сделано с ❤️ для сообщества Minecraft — ProtectCord, потому что профилактика лучше модерации.
Частые вопросы
Как установить Protectcord?
Установите NeoForge под свою версию Minecraft, скачайте Protectcord под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Protectcord?
У Protectcord есть сборки для Minecraft 1.8.8–26.1.2.