Метаданные плагина

Добавление метаданных в плагин помогает пользователям легче идентифицировать ваш плагин, предоставляя им возможность получить имя, версию, описание или список авторов плагина во время исполнения. Эта информация так же используется при публикации плагинов на различных ресурсах, таких как Ore.

На данный момент Sponge поддерживает следующие типы метаданных:

  • ID плагина, название, версия
  • Описание
  • URL-адрес (например, веб-сайт)
  • Авторы
  • Зависимости плагина

Аннотация Plugin

Вы можете определить дополнительные (необязательные) метаданные плагина в своей @Plugin аннотации:

import org.spongepowered.api.plugin.Plugin;

@Plugin(id = "myplugin", name = "My Plugin", version = "1.0",
    description = "This is a very cool plugin I made for me",
    url = "http://example.com",
    authors = {"Spongie", "FLARD"},
    dependencies = @Dependency(id = "otherplugin", optional = true))

Метаданные в файле

Дополнительно к аннотации с метаданными, определенной в плагине, мы так же рекомендуем включать в плагины файл с метаданными. Такой подход имеет ряд достоинств:

  • Более простая интеграция с системами сборки (к примеру, автоматическая вставка версии сборки в метаданные плагина)
  • Ресурсам посвященным плагинам проще анализировать метаданные плагина (нет необходимости разбирать class файлы)

Примечание

Мы настоятельно рекомендуем публичным плагинам включать файл с метаданными. Ресурсам посвященным плагинам, таким как Ore, могут потребоваться метаданные из файла. См. Using the Annotation Processor для простого способа генерации файла. Ресурс может вывести предупреждение, если в плагине отсутствует файл с метаданными.

Формат mcmod.info

Для Sponge плагинов мы используем файл mcmod.info, включенный в корень вашего JAR плагина. Формат файла был унаследован у Forge, так как данный формат успешно использовался несколькими проектами Minecraft сообществ.

mcmod.info это обычный JSON файл, который определяет метаданные плагина как простые поля. Ниже приведен пример файла, который может быть включен в Sponge плагин:

[{
    "modid": "myplugin",
    "name": "My Plugin",
    "version": "1.0",
    "description": "This is a very cool plugin I made for me",
    "authorList": [
        "Spongie",
        "FLARD"
    ],
    "dependencies": [
        "otherplugin"
    ]
}]

Использование процессора аннотаций

Написание дополнительного файла весьма раздражает. К счастью, для этого не требуется особых усилий. При компиляции вашего плагина, SpongeAPI способен генерировать этот файл автоматически на основе информации, представленной в аннотации @Plugin.

Включение

Если вы используете системы сборки, такие как Gradle или Maven, и явно не отключали процессор аннотаций, то тут нет ничего сложного. По умолчанию процессор аннотаций автоматически запускается и генерирует файл mcmod.info на основании информации описанной в вашей аннотации @Plugin.

Если вы не используете систем сборки, то вам необходимо вручную включать процессор аннотаций.

Интеграция с системами сборки

Если вы используете Gradle, то SpongeGradle обеспечит вам дополнительную интеграцию метаданных Gradle и метаданных плагина. Например он автоматически включит версию сборки, описанную в скрипте сборки Gradle, в ваши метаданные плагина. См. Настройка Gradle для деталей.