Начало разработки интеграций
Что такое разработка интеграций?
Разработка интеграций позволяет создавать бесшовные соединения между сторонними плагинами Minecraft и веб-платформой Pano. Используя классы Pano MC Plugin, вы можете:
- Синхронизировать данные между игрой и вебом.
- Отправлять запросы из вашего плагина Minecraft на веб-платформу Pano.
- Получать ответы Pano на эти запросы.
- Запускать веб-действия на основе игровых событий.
- Создавать единый пользовательский опыт на обеих платформах.
Предварительные требования
Перед началом разработки интеграций убедитесь, что у вас есть:
- Java Development Kit (JDK 11+) — общий код Pano MC Plugin собирается под Java 11 (его модулю Velocity нужна Java 17).
- Знание Kotlin — API написан на Kotlin; ожидание ответа — это
suspend-функция. - Опыт разработки плагинов Minecraft — понимание Spigot/Paper/Bukkit API.
- Pano MC Plugin — репозиторий GitHub.
- Запущенный экземпляр Pano — для тестирования вашей интеграции.
- Тестовый сервер Minecraft — сервер Spigot, Paper или Folia для разработки.
Примечание: Все примеры в этом руководстве приведены на Kotlin.
Обзор архитектуры
Система интеграции Pano состоит из трех основных компонентов:
┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ Ваш MC плагин │ ◄─────► │ Pano MC Plugin │ ◄─────► │ Бэкенд Pano │
│ (Интеграция) │ │ (API связи) │ │ (Веб-платформа)│
└─────────────────────┘ └──────────────────────┘ └─────────────────┘
(Хуки плагина) (Безопасный WebSocket API) (API платформы)Поток данных
- Ваш плагин → Pano MC Plugin: Вы отправляете запрос через его
PlatformManager. - Pano MC Plugin → Бэкенд Pano: Одно зашифрованное WebSocket-соединение (обмен ключом по RSA при подключении сервера, AES-256-GCM для каждого сообщения).
- Бэкенд Pano → Ваш плагин: Запрос обрабатывает серверное событие вашего плагина Pano; ответ возвращается по тому же соединению.
- Бэкенд Pano → Веб: Данные сохраняются и отображаются на веб-сайте.
Важно: НЕ делайте форк Pano MC Plugin. Вместо этого создайте свой отдельный плагин, который зависит от него. Ваш плагин не открывает второе соединение и не требует вторых учётных данных.