Eklenti Yaşan Döngüsü

Eklentiyi görünür hale getiren herhangi bir eyaletten önce, eklenti yükleyicisi önce mevcut eklentileri sıralar, tüm bağımlılıkların olup olmadığını belirler ve bağımlılık sırasına göre eklentilerini sıralar. Yaşam döngüsü olayları eklentilere bu sırayla verilir. Örneğin, “[required-] after: B” yi içeren eklenti A, eklenti B verilen eyalet için işi tamamladıktan sonra her olayı alacaktır. Buna ek olarak, yaşam döngüsü sınıfları küreseldir. Bu, birbirine görünen tüm eklentilerin bir anda tüm sınıflar arasında geçiş yapması gerektiği anlamına gelir.

Uyarı

Sponge Server nesnesi her zaman müsait olmaz.Kullanılabilirlik durumu Sponge.isServerAvailable() veya Game.isServerAvailable() yöntemlerinden biri kullanılark kontrol edilebilir.

Durum Olayları

Üç evre olayı kategorisi vardır:

  1. Başlatma: Sponge ve eklentiler yüklenirken, asıl oyun başlamadan önce. Başlatma evresi sadece bir kez ortaya çıkar.
  2. **Çalıştırma:**Oyun ve dünya yüklenirken. Çalıştırma evreleri birden fazla kez meydana gelebilir.
  3. **Durduruluyor:**Oyun kapatılırken. Durdurma evreleri, başlatma evreleri gibi, sadece bir kere meydana gelir.

Başlatma Durumları

Başlatma evreleri sadece bir çalışma sırasında bir kere meydana gelir.

YAPILANDIRMA

GameConstructionEvent başlatılır. Bu evre esnasında her eklenti için``@Plugin`` sınıfı örnekleri harekete geçirilir.

BAŞLATMA ÖNCESİ

The GamePreInitializationEvent başlatılır. Bu evre esnasında eklenti başlatmaya hazır olur.Varsayılan kaydedici örneğine erişim ve tercih edilen konfigürasyon dosyalarının yerleri ile ilgili bilgiye erişim mevcuttur.

BAŞLATMA

The GameInitializationEvent başlatılır. Bu evrede eklenti işlevsel olması için ihtiyaç duyulan her türlü işi bitirmelidir.Genel olay denetimcileri bu aşamada kaydolmalıdır.

BAŞLATMA SONRASI

The GamePostInitializationEvent başlatılır.Bu aşamadan eklentiler arası iletişim meydana gelmeye hazır olmalıdır. API sağlayıcı eklentiler de temel istekleri kabul etmeye hazır olmalıdır.

YÜKLEME_TAMAMLANDI

The GameLoadCompleteEvent is triggered. By this state, all plugin initialization should be completed.

Çalışma Durumları

Çalıştırma Evreleri tek bir çalıştırma sırasında birden çok kez oluşabilir. SERVER_ABOUT_TO_START SERVER_STOPPED’ın ardından gelebilir. Eğer bir hata mevcutsa işlem sırasından herhangi bir noktada ``SERVER_STOPPED``meydana gelebilir.

SUNUCU_BAŞLATILMAK_ÜZERE

The GameAboutToStartServerEvent evresi harekete geçirilir. Sunucu örnekleri mevcut olur ama dünyalar henüz yüklenmemiştir.

SUNUCU_BAŞLATILIYOR

The GameStartingServerEvent başlatılır.Sunucu örneği mevcut olur ve dünyalar yüklenir. Komut kaydı bu evre esnasında işlenir.

SUNUCU_BAŞLATILDI

The GameStartedServerEvent olayı başlatılır. Sunucu örneği mevcut olur ve dünyalar yüklenir.

SUNUCU_DURUYOR

The GameStoppingServerEvent başlatılır. Bu evre dünyalar kaydedilmeden hemen önce ve son tıklamadan hemen sonra meydana gelir.

SUNUCU_DURDU

The GameStoppingServerEvent başlatılır. Bu evre esnasında oyuncuların hiç biri bağlı değildir ve dünyalardaki hiçbir değişim kayıtlı değildir.

Durdurma Durumları

Durdurma evreleri bir tekli çalıştırma sırasında asla birden fazla meydana gelmez. Oyun normal olarak durdurulduğu zaman meydana gelirler.(Sunucularda:/stop komutu girildi. Müşterilere: “Close” butonu veya “Quit Game” butonu tıklandığında)

Uyarı

Durma evrelerinin kapatma esnasında çalışacağının garantisi yoktur. Eğer oyun Ctrl-C, Görev Yöneticisi, bilgisayar çökmesi veya buna benzer durumlar ile zorla durdurulduysa çalışmayabilirler.

GAME_STOPPING

GameStoppingServerEvent tetiklenir. Bu durum, GAME_STOPPED durumundan hemen önce olur. Bir API sunan eklentiler yine de temel istekleri kabul edebilir olmalılar.

GAME_STOPPED

GameStoppedServerEvent tetiklenir. Bu eylemin işlenmesi tamamlandığında, Mincraft kapanacaktır. Bu noktada oyunla ya da diğer eklentilerle herhangi bir etkileşime girilmemelidir.