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:
Initialization: Bu olaylar, Sponge ve eklentiler yüklendiğinde ortaya çıkar.
Running: Bu olaylar oyun ve dünya yüklendiğinde ortaya çıkar.
İlgili her evre olayı meydana geldiğinde bilgi için plugin lifecycle documentation bakın.