Rehber Alana özel event dinleme

  • Konuyu Başlatan Konuyu Başlatan Acablade
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 480
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Acablade

Bir Kömür Göründü Kaptanım!
Katılım
15 Ağustos 2017
Mesajlar
108
Elmaslar
80
Puan
13.695
Konum
Maryland, United States of America
Minecraft
Acablade

Discord:

acablade

Giriş
Merhaba forum sakinleri, bu konuda başlıkta da gördüğünüz üzere alana özel event dinleme olayını anlatacağım.

Nerede kullanabilirim ?
Sunucunuzun lobisinde küçük bir arena tarzı bir yer ya da bir mmorpg sunucusunda bölgeleri ayırma gibi çok ayrı kullanımları var. Sınır hayal gücünüz.

Anlatım

Elimizde bir Region classı olacak ve her regionun minimum lokasyonu ve maksimum lokasyonu olacak, ve bir de static Listener değişkeni olacak, hayır class Listener implementlemeyecek değişken olarak bulunduracak nedenini birazdan öğreneceksiniz.

Bu projenin asıl olayı "registerEvents" fonksiyonunu kullanmak yerine "registerEvent" fonksiyonunu kullanmakta bitiyor, benim sağladığım şey ise bunu kolaylaştıran bir araç, illa alan için kullanmanıza gerek yok bu olayı kendi dileğinize göre rahatça esnetebilirsiniz.

Neden registerEvents değil de registerEvent ?
registerEvent fonksiyonu bizden parametre olarak Event classı, Listener(bu yüzden değişken olarak atadık), Event önem sırası, Event executor ve plugin istiyor. sorumuzun cevabı ise registerEvent fonksiyonu parametrede belirtmiş olduğumuz Listener'a yeni event atarken, registerEvents fonksiyonu var olan listener'ın içerisindeki eventleri kapsıyor bu da amacımız doğrultusunda istediğimiz esnekliği kısıtlıyor.

İyi güzel de kodu anlat artık be
Hayhay!
Başta boş olan Region classımızı açtık ve değişkenlerimizi tanımladık:
1646534224531.png

şimdi sorabilirsiniz neden Listener static diye, isterseniz static yapmayabilirsiniz orası size kalmış ben tüm eventleri direkt 1 listenerda toplamak istediğim için böyle yaptım.
1646534336272.png

Sonra da güzelinden constructor'ımızı oluşturduk. Buraya kadar anlatacak fazla bir şey yok kodda maalesef.
1646534478853.png

Kırmızı ile işaretlediğim bölge, Event extendleyen istediğimiz classı alabilmemizi sağlıyor. Geri kalan yerler ise basit Java olayları anlatmama gerek olduğunu düşünmüyorum pek. Eğer bilmiyorsanız internette Consumer ve Generic Type olayını araştırabilirsiniz.
1646534617362.png

Geriye de gelecekte işimizi kolaylaştıracak şeyler kalıyor.

İyi güzel de biz bunu nasıl kullanacağız ?
1646534835636.png

Bu kadar ? (RegionEnterEvent ve RegionLeaveEvent kodlarını örnek pluginde bulabilirsiniz.)


Örnek Plugin:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.

NOT: PLUGIN TEST EDİLMEDİ.

Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.


İlk konum, eksiklerimi söylerseniz çok memnun olurum.
 

Ekli dosyalar

  • 1646534400694.png
    1646534400694.png
    20,4 KB · Görüntüleme: 3
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl