Metadatos del Complemento

Agregar metadatos de complemento ayuda a los usuarios a identificar su complemento más fácilmente, ya que les permite verificar el nombre, la versión, la descripción o incluso los autores de un complemento en el tiempo de ejecución. También se usará cuando se publiquen complementos en un portal de complementos como Ore.

Actualmente, Sponge soporta los siguientes tipos de metadatos de los complementos:

  • Identificacion del Complemento, Nombre del complemento, Versión
  • Descripción
  • URL (ejemplo Página Web)
  • Autores
  • Dependencias del complemento

Anotación del complemento

You can define the additional (optional) plugin metadata on your @Plugin annotation. You can provide all meta information in the annotation, despite only the id being required. A @Plugin annotation which uses all fields available looks like this:

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)})

For every @Dependency you provide, you may also give a version attribute specifying a version range according to Dependency#version(). The optional attribute specifies that your plugin may be loaded even if the dependency is not available. Unless explicitly specified as optional, the absence of any dependency will prevent your plugin from being loaded.

Nota

For both authors and dependencies, the curly brackets may be left out if only one element is supplied, e.g. dependencies = @Dependency(id = "otherplugin", optional = true) in the above example.

Metadato del archivo

Además de los metadatos del complemento definidos en la anotación del complemento, también recomendamos que los complementos incluyan estos metadatos en un archivo adicional en el JAR, que tiene varias ventajas:

  • Integración más sencilla para los sistemas de compilación (por ejemplo, contribuir la versión del sistema de compilación a los metadatos de los complementos)
  • Más fácil para los portales de complementos obtener los metadatos del complemento (no es necesario analizar los archivos de clase)

Nota

Recomendamos encarecidamente complementos públicos para incluir metadatos de archivos. Los portales de complementos como Ore pueden requerir metadatos de archivos. Vea Using the Annotation Processor para obtener una forma simple de generarlo. La implementación puede imprimir una advertencia si un complemento carece de los metadatos del archivo.

El formato mcmod.info

Para los complementos de Sponge, usamos un archivo llamado mcmod.info, que se incluye en la raíz de su complemento JAR. El formato proviene de Forge y ha sido utilizado por varios proyectos en la comunidad de Minecraft, por lo que hemos elegido usar el mismo.

mcmod.info es básicamente un simple archivo JSON que define los metadatos del complemento como campos simples. Aquí hay un archivo de ejemplo que podría ser utilizado por un complemento de 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"
    ]
}]

Usando el Procesador de Anotación

Escribir un archivo extra es bastante molesto. Afortunadamente, generalmente no hay nada más que deba hacer. Al compilar su complemento, SpongeAPI puede generar este archivo automáticamente en función de la información provista en su anotación @Plugin.

Habilitando

If you’re using a build system such as Gradle or Maven and have not explicitly disabled annotation processing there is nothing extra you need to do. By default, the annotation processor will automatically run and generate a mcmod.info file based on the contents of your @Plugin annotation.

Si no está usando un sistema constructivo, debe habilitar manualmente el proceso de anotaciones.

Construir integración del sistema

Si está utilizando Gradle, SpongeGradle proporcionará una integración adicional para Gradle y los metadatos de los complementos. Por ejemplo, incluirá automáticamente la versión del proyecto definida en el guión de construcción de Gradle en los metadatos del complemento. Ver Configuración de Gradle para más detalles.

Nota

If you’re using the NetBeans IDE make sure you’ve unchecked the Compile On Save option under Project Properties > Build > Compile to make sure the mcmod.info file will be generated correctly.