Eklenti Metaverileri

Eklenti meta verileri ekleme, kullanıcılara, çalışma zamanında bir eklentinin adını, sürümünü, açıklamasını veya yazarlarını bile kontrol etme olanağı vererek eklentinizi daha kolay tanımlamanıza yardımcı olur. Eklentileri Ore gibi bir eklenti portalında yayınlarken de kullanılacaktır.

Şu anda, Sponge şu eklentinin meta verilerini desteklemektedir:

  • Eklenti Kimlik, Eklenti İsim, Sürüm
  • Açıklama
  • URL (örneğin: Web sitesi)
  • Yazarlar
  • Eklenti bağımlılıkları

Eklenti ek açıklaması

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.

Not

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.

Metaveri dosyası

Eklenti ek açıklamasında, tanımlanmış eklenti meta verilerine ek olarak, eklentilerin bu meta veriyi JAR içindeki ek bir dosyaya dahil etmelerini de tavsiye ederiz, ki bu avantajlara sahiptir:

  • Yapı sistemleri için daha kolay birleştirme (örneğin, yapı sisteminden eklenti meta verilerine sürümün katkıda bulunulması)
  • Eklenti portalları için eklenti meta verilerini elde etmek daha kolaydır (sınıf dosyalarının ayrıştırılması gerekli değildir)

Not

Herkese açık eklentilerin dosya meta verilerini içermelerini şiddetle öneriyoruz. Ore gibi eklenti portalları, dosya meta veri bilgisini şart koşabilir. Bu bilgiyi oluşturmanın kolay yolu için, Using the Annotation Processor makalesine göz atın. Eğer eklentide meta verisi mevcut değilse, uygulama bir uyarı mesajı verebilir.

mcmod.info formatı

Sponge eklentileri için, eklentinizin JAR dosyasının kök dizininde bulunan mcmod.info adlı bir dosyayı kullanmaktayız. Format, Forge’dan gelmektedir ve Minecraft topluluğunda birçok proje için kullanılmıştır; bu yüzden, biz de aynı yolu izledik.

mcmod.info, eklenti meta verisini basit alanlar olarak tanımlayan bir JSON dosyasıdır. Sponge eklentisi tarafından kullanılabilen bir örneğini aşağıda görebilirsiniz:

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

Ek Açıklama İşlemcisini Kullanmak

Fazladan bir dosya yazmak sinir bozucu olabilir. Şanslıyız ki, genelde fazladan bir iş yapmanıza gerek yoktur. Eklentinizi derlerken SpongeAPI, @Plugin açıklamanızda sunduğunuz bilgileri kullanarak bu dosyayı otomatik olarak oluşturabilmektedir.

Etkinleştirme

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.

Eğer bir kurulum sistemi kullanmıyorsanız, açıklama işlemini manüel olarak aktif hale getirmelisiniz.

Kurulum Sistemi Entegrasyonu

Eğer siz Gradle kullanıyorsanız, <https://github.com/SpongePowered/SpongeGradle>`_ Gradle ve plugin meta verisi için size ek entegrasyon sunacaktır.Örnek olarak, Gradle yapı not dosyasında tanımlanmış olan proje sürümünü plugin meta verilerine otomatik olarak ekleyecektir. Detaylar için Gradle’ın kurulumu görüntüleyiniz.

Not

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.