- Katılım
- 15 Ağustos 2017
- Mesajlar
- 17
- Elmaslar
- 5
- Puanlar
- 13.260
- Yaş
- 25
- Minecraft
- 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:
ş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.
Sonra da güzelinden constructor'ımızı oluşturduk. Buraya kadar anlatacak fazla bir şey yok kodda maalesef.
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.
Geriye de gelecekte işimizi kolaylaştıracak şeyler kalıyor.
İyi güzel de biz bunu nasıl kullanacağız ?
Bu kadar ? (RegionEnterEvent ve RegionLeaveEvent kodlarını örnek pluginde bulabilirsiniz.)
Örnek Plugin:
Bu yazının üstüne tıklayarak pluginin kaynak kodlarına gidebilirsin.
NOT: PLUGIN TEST EDİLMEDİ.
Bu yazıya tıklayarak konuya ait videoya gidebilirsin.
İlk konum, eksiklerimi söylerseniz çok memnun olurum.
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:
ş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.
Sonra da güzelinden constructor'ımızı oluşturduk. Buraya kadar anlatacak fazla bir şey yok kodda maalesef.
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.
Geriye de gelecekte işimizi kolaylaştıracak şeyler kalıyor.
İyi güzel de biz bunu nasıl kullanacağız ?
Bu kadar ? (RegionEnterEvent ve RegionLeaveEvent kodlarını örnek pluginde bulabilirsiniz.)
Örnek Plugin:
Bu yazının üstüne tıklayarak pluginin kaynak kodlarına gidebilirsin.
NOT: PLUGIN TEST EDİLMEDİ.
Bu yazıya tıklayarak konuya ait videoya gidebilirsin.
İlk konum, eksiklerimi söylerseniz çok memnun olurum.