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.