Что такое executePHP и зачем он нужен серверу Minecraft
Владельцы серверов Minecraft постоянно ищут способы связать игровой процесс с внешними сервисами — будь то сайт проекта, форум или система донатов. Плагин executePHP решает эту задачу элегантно: он позволяет выполнять внешние PHP-скрипты прямо из игры по команде игрока. Изначально разработанный для проекта archcry, этот инструмент быстро стал популярным благодаря своей гибкости и простоте. Представьте: игрок вводит команду с кодом, сервер отправляет запрос на ваш веб-сайт, а ответ от PHP-скрипта мгновенно возвращается в чат. Никаких сложных API, только чистый Bukkit/Spigot и ваш собственный код.
Ключевые возможности плагина
executePHP не перегружен функциями, но каждая из них работает чётко и предсказуемо. Вот что вы получаете сразу после установки:
- Мгновенная верификация аккаунтов — связывание игрового профиля с учётной записью на сайте через уникальный код.
- Простая настройка — достаточно указать URL скрипта и сообщения в конфигурационном файле.
- Гибкая система ответов — можно задать любое количество результатов (success, incorrect, already-verified и т.д.) с кастомными цветными сообщениями.
- Автоматическая проверка обновлений — плагин сам уведомит администратора о выходе новой версии.
- Поддержка переменных — передача имени игрока, кода и UUID прямо в URL запроса.
Команды и права доступа
Плагин добавляет всего три команды, но они покрывают все потребности. Администратор может перезагрузить конфигурацию на лету, а игроки — запустить верификацию. Вот полный список:
/executePHP— показывает справочную страницу с подсказками./executePHP reload(правоexecutePHP.reload) — перечитывает конфигурационный файл без перезапуска сервера./verify <код>(правоexecutePHP.verify) — отправляет запрос к внешнему PHP-скрипту с переданным кодом и переменными.
Когда игрок вводит заветную команду, плагин подставляет его ник, UUID и код в URL, который вы заранее прописали в конфиге. В этот момент на стороне веб-сервера выполняется ваш скрипт, и его ответ превращается в сообщение в Minecraft-чате. Кстати, чтобы быстро подключаться к серверам с кастомными плагинами и не мучиться с ручной установкой модов, многие используют лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где можно скачать моды прямо из меню. Это особенно актуально, если вы играете на сборках с кучей дополнительных механик.
Переменные для тонкой настройки
Главная сила executePHP — в динамической подстановке данных. Вы можете сформировать URL так, чтобы он содержал всю нужную информацию о запросе. Доступны следующие переменные:
- %username% — никнейм игрока, выполнившего команду.
- %code% — тот самый код, который игрок ввёл после
/verify. - %uuid% — уникальный идентификатор игрока (полезен для точной привязки к аккаунту).
Пример URL в конфигурации может выглядеть так: http://вашсайт.ру/executePHP?name=%username%&code=%code%. При вызове команды /verify secret123 плагин автоматически заменит переменные и отправит GET-запрос. Вы вольны добавить любые другие параметры, если доработаете PHP-скрипт.
Конфигурация плагина
Файл настроек выполнен в YAML-формате и интуитивно понятен. Рассмотрим основные секции:
checkUpdate: true— автоматическая проверка обновлений при запуске сервера.URL— адрес вашего PHP-скрипта с переменными.verifyingMessage— сообщение, которое увидит игрок, пока идёт обработка запроса (поддерживает цветовые коды через&).results— блок, где вы перечисляете возможные ответы от скрипта и соответствующие им сообщения в чате. Например, если PHP-скрипт возвращает строку «success», игрок увидит зелёное «Successfully verified code!».
Вы можете определить любое количество результатов — хоть десять разных статусов. Это открывает простор для сложных сценариев: проверка привилегий, выдача наград, синхронизация с базой данных сайта.
Пример PHP-скрипта для верификации
Чтобы стало совсем понятно, вот минимальный рабочий пример скрипта, который обрабатывает запрос от плагина:
<?php
if (!empty($_GET['username']) && !empty($_GET['code'])) {
$name = $_GET['username'];
$code = $_GET['code'];
switch ($code) {
case "sugar":
echo "success";
break;
case "milk":
echo "incorrect";
break;
case "wheat":
echo "already-verified";
break;
default:
echo "error";
break;
}
} else {
echo "Error: No URL Variables.";
}
?>
Скрипт принимает два параметра, сравнивает код со списком и возвращает одну из заранее оговоренных строк. Плагин сопоставляет её с результатами в конфиге и показывает игроку нужное сообщение. Никакой магии — только PHP и немного YAML.
Планируемые улучшения
Разработчик не останавливается на достигнутом. В дорожной карте значатся интересные нововведения, которые сделают executePHP ещё мощнее:
- Асинхронное выполнение PHP — запросы не будут тормозить основной поток сервера, что положительно скажется на производительности.
- Таймаут запроса — если скрипт не отвечает за заданное время, плагин сам вернёт ошибку, не заставляя игрока ждать бесконечно.
- Возвращаемые команды — возможность выполнять серверные команды в зависимости от ответа PHP-скрипта (например, выдать группу или предмет).
Эти функции превратят плагин в полноценный мост между игровым миром и веб-инфраструктурой.
Почему executePHP стоит попробовать прямо сейчас
Плагин executePHP — это не просто инструмент для верификации, а целый конструктор взаимодействия с внешними системами. Он лёгок, не требует глубоких знаний Java, работает на любой версии Bukkit/Spigot и настраивается за пару минут. Если вы хотите дать игрокам возможность подтверждать регистрацию, получать бонусы за активность на форуме или запускать сложные сценарии по одному коду — этот плагин станет вашим незаменимым помощником. А регулярные обновления и отзывчивый автор гарантируют, что проект будет развиваться вместе с вашими потребностями.