Ana eklenti sınıfı

Not

Sponge Dokümantasyonu’ndaki talimatlar, önceden Java bilgisine sahip olduğunuzu varsayıyor. Sponge API, Sponge tarafından desteklenen Minecraft sunucuları için eklentiler oluşturmaya başlamanız için temel sağlar; Ancak, yaratıcı olmanız ve kodunuzu işler hale getirmeniz size aittir! Java ile çok az tecrübeniz olursa çevrimiçi olarak birkaç ücretsiz Java kursu vardır.

Sınıfınız başlatılıyor

Sponge API’sini bir bağımlılık olarak ekledikten sonraki bir sonraki adım yeni bir sınıf oluşturmaktır. Sınıfta istediğiniz gibi adlandırılabilir ve``org.spongepowered`` ile başlamayan herhangi bir pakette olabilir. Sözleşmeye göre, sınıf adları başlık kutucuğunda olmalıdır.

Uzman eğer domaininiz varsa domaininizi paket adınız olarak kullanabilmeniz için <https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html>`_ öneriyor. Ancak domaine sahip olmadığınız olayda genel uygulama bir email adresi ( com.gmail.username.project gibi) veya bir açık kaynaklı veri havuzu (io.github.username.project gibi) kullanmaktır.

Esas sınıfınızı oluşturduktan sonra,:javadoc:`Plugin`ek açıklaması eklenmek zorundadır. Bu ek açıklama sizin plugin’niz yüklendiğinde Sponge’ın esas plugin sınıfınızı kolay bir şekilde bulmasını sağlar.Örnek bir kullanım aşağıda resmedilmiştir.

package io.github.username.project;

import org.spongepowered.api.plugin.Plugin;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {

}

Not

Eklenti ID’nizi henüz girmediyseniz Eklenti Tanımlayıcıları başvurun.

Eklentiniz Başlatılıyor

Eklentiler oyun ve dünya (lar)’dan önce yüklenir. Eklentiniz oyunla etkileşime girmeye başlamışsa, komutları veya etkinlikleri kaydetmek gibi belirli bir zaman aralığı bırakır.

Eklentiniz oyunun evrelerindeki değişikliklerden haberdar olmak için state events denilen belirli olayları dinleyebilir. Aşağıdaki örnekte,``onServerStart()`` GameStartedServerEvent meydana geldiğinde çağırılır ; yöntemden önce Listener bilgi notunu kaydedin ,

import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
    @Listener
    public void onServerStart(GameStartedServerEvent event) {
        // Hey! The server has started!
        // Try instantiating your logger in here.
        // (There's a guide for that)
    }
}

Tüyo

Sponge belge işlemi olaylardaki ( Etkinlikler e bakın) daha fazla bilgiyle birlikte bir kılavuz sağlar. Normalde , olay çözücü tekniklere @Listener ile ön bilgi eklemeye ilaveten Sponge’un olay yoluyla nesnenizi kaydetmelisiniz. Ancak sizin ana eklenti sınıfınız otomatik olarak kaydedilir.

Durum Olayları

Ayrıca diğer evre olayları özellikle de GameStoppingServerEvent istenilebilir. Evre olaylarının iki kategorisi vardır:

İlgili her evre olayı meydana geldiğinde bilgi için plugin lifecycle documentation bakın.