Плагин для серверов Майнкрафт, который защищает от ботов и неавторизованных игроков через проверку CAPTCHA на сайте. До подтверждения игрок попадает в изолированный виртуальный мир Limbo, а после успешной проверки возвращается в основной мир с сохранённым инвентарём.
Возможности
- Встроенная веб-страница с Google reCAPTCHA v2 или внешняя страница проверки с собственной логикой.
- Поддержка Turnstile, Discord OAuth и других вариантов проверки на внешнем сайте.
- Одноразовая сессия проверки; ссылка на неё отправляется игроку в чат.
- Таймер на полосе опыта и предупреждение перед киком, если время проверки истекло.
- Хранение состояний и времени проверок в SQLite в файле
verification.db. - Белый список игроков и настраиваемый срок, в течение которого повторная проверка не нужна.
- REST API для внешнего сайта:
POST /api/v1/verifyиGET /api/v1/session/{id}. Запросы защищаются заголовкамиX-API-KeyиX-API-Secret.
Команды
/webcapture api create <name> <creator>— создать ключ и секрет API; только консоль сервера./webcapture api remove <name>— удалить ключ API; только консоль сервера./webcapture api list— показать ключи API; только консоль сервера./webcaptcha help— открыть справку плагина./webcaptcha reload— перезагрузить конфиги./webcaptcha portcheck <ip> <port>— проверить доступность порта./webcaptcha verify clearverify <player>— сбросить статус проверки игрока./webcaptcha verify setverify <player>— отметить игрока как прошедшего проверку./webcaptcha verify whitelist <add|remove|list>— управлять белым списком.
Права
webcaptcha.help— команда справки.webcaptcha.reload— перезагрузка конфигурации.webcaptcha.clearverify— сброс проверки игрока.webcaptcha.setverify— подтверждение игрока вручную.webcaptcha.whitelist— управление белым списком.
Команды portcheck и управления API доступны операторам; создание ключей API выполняется только из консоли.
Настройка
Основные параметры находятся в config.yml, а параметры API — в api_config.yml. В конфигурации можно выбрать встроенную или внешнюю страницу проверки, задать время ожидания, режим игры, полёт, слепоту, скрытие инвентаря, адрес bind_address и сообщение перед киком. Для внешнего сайта используется Web_Type: "Custom".
Требования
Нужны серверы Paper, Bukkit или Spigot и плагин PacketEvents: он создаёт виртуальный Limbo-мир.
