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ı

‘’ @Plugin’’ açıklama üzerinde ek (isteğe bağlı) eklenti meta veri tanımlayabilirsiniz:

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

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

Eğer siz Gradle veya Maven gibi bir yapılandırma sistemi kullanıyorsanız ve açıklama işlemini bariz bir şekilde devre dışı bırakmadıysanız, ekstra bir şey yapmanıza gerek yoktur. Varsayılan olarak ayarlanmış açıklama işlemcisi otomatik olarak çalışır ve ``@Plugin``açıklamanızın içeriğine dayalı olarak bir ``mcmod.info``dosyası oluşturur.

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

Kurulum Sistemi Entegrasyonu

Gradle kullanıyorsanız, Gradle ve eklenti meta verisi için SpongeGradle size ek entegrasyon sunacaktır. Örneğin SpongeGradle, Gradle inşa script’inde tanımlı proje sürümünü otomatik olarak eklenti meta vernize dahil edecektir. Detaylar için, Gradle’ın kurulumu dokümanına göz atabilirsiniz.