
Sparkle
Фреймворк для разработки плагинов на Kotlin под сервера Paper. Включает все необходимые зависимости в один jar-файл, чтобы разработчикам не пришлось тянуть лишнее вручную.
Sparkle Framework
Sparkle - это универсальный фреймворк для создания плагинов под Minecraft-сервера на базе Paper (и выше). Написан на Kotlin, что уже само по себе даёт разработчикам массу преимуществ перед стандартным Java-подходом: корутины, extension-функции, null-safety из коробки, да и код читается куда лаконичнее. Если вы пишете плагины для своего сервера и устали от многословности Java - Sparkle буквально создан, чтобы упростить вам жизнь.
Версии и поддержка
Разработчики Sparkle стараются идти в ногу со временем и использовать актуальные версии зависимостей как можно быстрее. Из-за этого старые сборки фреймворка быстро устаревают - выходит новая версия Paper, ломается API, и вот уже прошлый билд не запускается. В планах у команды выпустить подробную таблицу с указанием, как долго каждая конкретная версия Sparkle будет получать поддержку и обновления.
Пока что ориентируйтесь на последние релизы в репозитории - там всегда актуальная сборка.
Контрибьюция
Проект открыт для контрибьюции. Если хотите поучаствовать в разработке Sparkle - соблюдайте общие правила GitHub и лицензии, указанные в репозитории. Вопросы, идеи и предложения можно обсуждать в разделе Discussions - там есть отдельные темы для разных типов обсуждений.
Что входит в jar
Один из главных плюсов Sparkle - runnable jar уже включает в себя (через shadow-плагин) все ключевые зависимости. Вам не нужно отдельно скачивать и подключать каждую библиотеку. Вот полный список зашитых в сборку:
- Ascend
- Stacked
- Sparkle
- Kotlin Standard Library
- Kotlin Standard Library JDK8
- Kotlin Reflect
- KotlinX Serialization JSON
- KotlinX Coroutines Core
- SLF4J-API
- JetBrains Exposed Core
- JetBrains Exposed DAO
- JetBrains Exposed JDBC
- Ktor Client Core JVM
- Ktor Serialization KotlinX JSON
- Ktor Client CIO
- Ktor Client Content Negotiation
- Adventure API
- Adventure text Serializer Legacy
- Adventure text MiniMessage
Совет разработчику
Список внушительный, и тут кроется важный нюанс. Если ваш плагин уже использует какую-то из этих библиотек отдельно (например, вы сами подключали KotlinX Coroutines или Adventure API через Gradle), при сборке с Sparkle может возникнуть конфликт классов. Проверяйте dependency tree перед деплоем на сервер - иначе получите ClassDefNotFoundException в рантайме, и будете долго искать причину.
Технические требования
Сборка и запуск Sparkle производятся на Java 17 - Eclipse Temurin. Это не рекомендация, а жёсткое требование. Paper для Minecraft 1.18+ тоже работает на Java 17+, так что тут всё сходится, но если вы по какой-то причине сидите на старой Java 11 - ничего не заведётся.
Для лучшей совместимости и производительности используйте именно Eclipse Temurin, а не произвольную сборку OpenJDK. Команда Sparkle тестирует именно на Temurin, и если что-то ломается на другой JVM - багрепорт вряд ли примут.
Зачем это вообще нужно
Если вы админ Paper-сервера и не пишете плагины сами - Sparkle вам напрямую не нужен. Но если у вас на сервере стоят кастомные плагины, написанные специально под ваш проект, есть шанс, что разработчик использовал именно этот фреймворк. В таком случае Sparkle должен лежать в папке plugins рядом с остальными плагинами.
Для разработчиков же это готовая база: вместо того чтобы каждый раз настраивать Gradle-проект с нуля, тянуть Kotlin-зависимости, прикручивать Adventure для красивых сообщений в чат, подключать Exposed для работы с базой данных и Ktor для HTTP-запросов - вы просто берёте Sparkle и получаете всё это из коробки. Корутины Kotlin позволяют писать асинхронный код без блокировки главного потока сервера, что критично для производительности на больших проектах.
Скачать Sparkle имеет смысл, если вы планируете разрабатывать плагины для Paper-сервера на Kotlin и хотите иметь под рукой готовый набор инструментов без лишней настройки.
Сервер для плагина Sparkle - как у профи
Плагин Sparkle создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Sparkle для друзей можно за пару минут - BungeeHost всё уже подготовил.
