Sol Reklam

Rehber Spigot|Bukkit Eklenti Kodlama Rehberi #2 (Eventler)

Durum
Mesaj gönderimine kapalı.

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye
bayram.png

Spigot|Bukkit Eklenti Kodlama Rehberi Bölüm(2)

Evet arkadaşlar rehber serimizin 2. bölümüne giriş yapmış bulunuyoruz.
Önceki rehber konuma gelen yorumlar üzerine anlatımda daha titiz olmaya çalışacağım.
Tüm destek veren ve yorum yapan arkadaşlarımıza teşekkür ediyorum.
Şunu da eklemem gerek bu rehber Java hakkında hiç bir bilgisi olmayan kişiler için değil aksine temel Java bilgisi olan ve eklenti yazmak isteyen kişiler için hazırlanmıştır.Lütfen bilmiyorsanız en azından ilk önce Java ile ilgili temel bilgilere göz atın.



Eventler nedir ve nasıl eklentiye dahil edilir?
Event kelimesi nedir ilk önce bunu anlarsak gerisi daha rahat gelir. Event kelimesinin Türkçe karşılığı olay demektir.
Peki bu olay bizim işimize Minecraftta nasıl yarayacak veya nasıl kullanacağız?
Olay kelimesinin gerçek hayattaki kullanımı ile eklenti yazarken kullandığımız anlamı aynıdır.
Yani bize gerçekleşen bir hareketi,işlemi belirtir.
Örneğin; oyunucunun blok kırması, oyuncunun mesaj yazması , oyuncunun hasar alması vs.
Bunların hepsinin özel eventleri vardır. Ve eventlerin de kendilerine özel verileri vardır.
Bugünkü dersimizde PlayerJoinEvent isimli eventi inceleyeceğiz.
Fakat bilinmesi gereken ve bir eventi dinleyebilmemiz adına kesinlikle olması gereken iki fonksiyon vardır.


1. Önceki dersimizde onEnable() methodumuzun ne işe yaradığını kısa bir şekilde anlatmıştım, pekişmesi adına tekrar anlatıyorum.
onEnable() methodumuzla sunucumuzun ilk açıldığında neler yapacağını belirtiyoruz.
Peki eventi algılayabilmesi için ne yapmalı? O sınıf içerisinde olabilecek tüm eventleri dinlemeli.

İşte tüm eventleri dinlemesinin plugin açılır açılmaz başlamasını söylüyoruz.
Kod:
public void onEnable() {  
        getServer().getPluginManager().registerEvents(this, this);          
    }
Yukarıda yazan kodda getServer() ile sunucumuzu çağırdık ,getPluginManager() ile plugin yöneticimizi çağırdık,registerEvents(this,this) ile ise şu an bulunduğumuz sınıfın event içerdiğini belirtmiş olduk.
registerEvents(1.kısım, 2.kısım)'in genel kullanımı 1. kısım hangi sınıfı dinleyeceğiniz , 2.kısım ise ana sınıfınızdır.
2.Eventin bulunduğu methodumuzdan önce ,@EventHandler ile alttaki metodumuzun bir event içerdiğini bilgisayarımıza belirtiyoruz.



Şimdi İse İlk Eventimizi İçeren Eklentimizi Yazalım
Kod:
public class rrmain extends JavaPlugin implements Listener{
   
    public void onEnable() {  
        getServer().getPluginManager().registerEvents(this, this);
           
    }
   
   
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player o = (Player) e.getPlayer();
        o.sendMessage("Hoşgeldin Değerli Oyuncumuz!");
    }
   
   
   
}



public void onJoin() bizim method ismimizdir, bu method ismini istediğiniz gibi değiştirebilirsiniz.
İçine yazdığımız PlayerJoinEvent bizim olay kısımımızdır yani oyuncunun oyuna girmesi olayını algılar.
Ve bu olay kısmını e değişkenine atadık.


Daha sonra Player ile oyuncumuzu tanımladık.Ve oyuncumuza oyuna giriş olayını yapan kişiyi atadık.(e.getPlayer() ile)
Daha sonra ise 1. dersimizde konsola mesaj yollamamızı sağlayan fonksiyon olan sendMessage() fonksiyonuyla bu sefer oyuna giriş yapan kişi olarak atadığımız oyuncumuza mesaj yolladık.

Kodumuzun Son Hali

Kod1 - Ders2.PNG


Unutulmaması Gerekenler:
1-plugin.yml dosyamız.
2-eklentiyi export(dışarı aktarma) etmek.




Sizlere önerim lütfen bu dersten aldığınız bilgilerle yetinmeyin ve araştırmacı olun.
Bu dersler ile size sadece temel eklenti yazma bilgilerini verebilirim.
Çünkü bu şekilde yazmak epey yorucu ve zaman kaybettirici oluyor.
Eğer İngilizceniz varsa yabancı kaynaklara yönelmenizi yoksa İngilizce öğrenmeye başlamanızı tavsiye ederim.
Bu linkte diğer event çeşitleri var.
Ayrıca
bu linkte genel anlamda spigot kütüphanesinin içeriği var.



Eğer buraya kadar hatasız bir şekilde geldiyseniz.
Event hakkında aklınızda bir şeyler oluşmuş ve ilk eventinizi kullanmış oldunuz.


İyi Forumlar Dilerim..





 
Son düzenleme:
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı